From 5719c0d2b491d0782d32089b202e3219952246df Mon Sep 17 00:00:00 2001 From: uku Date: Wed, 26 Jun 2024 19:30:41 +0200 Subject: [PATCH] chore: refactor systems --- configs/client.nix | 2 + configs/common.nix | 6 ++ configs/desktop.nix | 6 ++ configs/server.nix | 2 + systems/default.nix | 82 ++++----------------- systems/etna/reposilite.nix | 4 +- systems/etna/shlink.nix | 2 +- systems/etna/uku.nix | 7 ++ systems/fuji-wsl/default.nix | 2 + systems/fuji-wsl/hardware-configuration.nix | 2 +- 10 files changed, 46 insertions(+), 69 deletions(-) diff --git a/configs/client.nix b/configs/client.nix index 73a9c6d..de63298 100644 --- a/configs/client.nix +++ b/configs/client.nix @@ -1,4 +1,6 @@ {pkgs, ...}: { + imports = [./common.nix]; + environment.systemPackages = with pkgs; [ nil ffmpeg diff --git a/configs/common.nix b/configs/common.nix index 9d2e608..5ba4df2 100644 --- a/configs/common.nix +++ b/configs/common.nix @@ -4,12 +4,18 @@ config, nixpkgs, agenix, + home-manager, + vscode-server, ... }: let username = "leo"; stateVersion = "23.11"; in { imports = [ + agenix.nixosModules.default + home-manager.nixosModules.home-manager + vscode-server.nixosModules.default + (lib.mkAliasOptionModule ["hm"] ["home-manager" "users" username]) ../programs/fish.nix diff --git a/configs/desktop.nix b/configs/desktop.nix index 4f9f2d7..e1182df 100644 --- a/configs/desktop.nix +++ b/configs/desktop.nix @@ -3,9 +3,15 @@ pkgs, config, catppuccin, + lanzaboote, ... }: { imports = [ + catppuccin.nixosModules.catppuccin + lanzaboote.nixosModules.lanzaboote + + ./client.nix + ../programs/ghostty.nix ../programs/gnome.nix ../programs/vscode.nix diff --git a/configs/server.nix b/configs/server.nix index a33375a..698031c 100644 --- a/configs/server.nix +++ b/configs/server.nix @@ -1,4 +1,6 @@ {config, ...}: { + imports = [./common.nix]; + _module.args.nixinate = { host = config.networking.hostName; sshUser = "root"; diff --git a/systems/default.nix b/systems/default.nix index 52008fe..b7cebe9 100644 --- a/systems/default.nix +++ b/systems/default.nix @@ -1,76 +1,26 @@ { lib, - self, inputs, ... }: let - # shamelessly borrowed from https://github.com/getchoo/flake/blob/94dc521310b34b80158d1a0ab65d4daa3a44d81e/systems/default.nix - toSystem = builder: name: args: - (args.builder or builder) ( - (builtins.removeAttrs args ["builder"]) - // { - modules = - args.modules - ++ [ - ./${name} - ./${name}/hardware-configuration.nix + toSystem = name: role: + inputs.nixpkgs.lib.nixosSystem + { + modules = [ + ./${name} + ./${name}/hardware-configuration.nix + ../configs/${role}.nix - {networking.hostName = name;} - ]; - specialArgs = inputs; - } - ); + {networking.hostName = name;} + ]; - mapNixOS = lib.mapAttrs (toSystem inputs.nixpkgs.lib.nixosSystem); - - _common = with inputs; [ - ../configs/common.nix - agenix.nixosModules.default - home-manager.nixosModules.home-manager - vscode-server.nixosModules.default - ]; - - client = [../configs/client.nix] ++ _common; - - server = [../configs/server.nix] ++ _common; - - desktop = with inputs; - [ - ../configs/desktop.nix - catppuccin.nixosModules.catppuccin - lanzaboote.nixosModules.lanzaboote - ] - ++ client; + specialArgs = inputs; + }; in { - flake.nixosConfigurations = mapNixOS { - fuji = { - system = "x86_64-linux"; - modules = desktop; - }; - - fuji-wsl = { - system = "x86_64-linux"; - modules = - client - ++ (with inputs; [ - nixos-wsl.nixosModules.default - ]); - }; - - kilimandjaro = { - system = "x86_64-linux"; - modules = desktop; - }; - - etna = { - system = "x86_64-linux"; - modules = - server - ++ (with inputs; [ - api-rs.nixosModules.default - ukubot-rs.nixosModules.default - self.nixosModules.reposilite - ]); - }; + flake.nixosConfigurations = lib.mapAttrs toSystem { + fuji = "desktop"; + fuji-wsl = "client"; + kilimandjaro = "desktop"; + etna = "server"; }; } diff --git a/systems/etna/reposilite.nix b/systems/etna/reposilite.nix index 517e2ce..5968458 100644 --- a/systems/etna/reposilite.nix +++ b/systems/etna/reposilite.nix @@ -1,4 +1,6 @@ -_: { +{self, ...}: { + imports = [self.nixosModules.reposilite]; + cfTunnels."maven.uku3lig.net" = "http://localhost:8080"; # see exprs/reposilite/module.nix diff --git a/systems/etna/shlink.nix b/systems/etna/shlink.nix index 202934f..de61ad1 100644 --- a/systems/etna/shlink.nix +++ b/systems/etna/shlink.nix @@ -1,4 +1,4 @@ -{...}: { +_: { cfTunnels."uku.moe" = "http://localhost:8081"; virtualisation.oci-containers.containers.shlink = { diff --git a/systems/etna/uku.nix b/systems/etna/uku.nix index 6bba494..a61a6e1 100644 --- a/systems/etna/uku.nix +++ b/systems/etna/uku.nix @@ -1,8 +1,15 @@ { config, mkSecrets, + api-rs, + ukubot-rs, ... }: { + imports = [ + api-rs.nixosModules.default + ukubot-rs.nixosModules.default + ]; + age.secrets = mkSecrets { apiRsEnv = {}; ukubotRsEnv = {}; diff --git a/systems/fuji-wsl/default.nix b/systems/fuji-wsl/default.nix index 8b1a717..9ac4fd2 100644 --- a/systems/fuji-wsl/default.nix +++ b/systems/fuji-wsl/default.nix @@ -1,9 +1,11 @@ { config, pkgs, + nixos-wsl, ... }: { imports = [ + nixos-wsl.nixosModules.default ../../programs/rust.nix ]; diff --git a/systems/fuji-wsl/hardware-configuration.nix b/systems/fuji-wsl/hardware-configuration.nix index 7e74ef2..f4c1b62 100644 --- a/systems/fuji-wsl/hardware-configuration.nix +++ b/systems/fuji-wsl/hardware-configuration.nix @@ -1,3 +1,3 @@ { - # intentionally empty + nixpkgs.hostPlatform = "x86_64-linux"; }