diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/darwin/default.nix | 1 | ||||
| -rw-r--r-- | modules/darwin/suites/default.nix | 5 | ||||
| -rw-r--r-- | modules/darwin/suites/personal.nix | 11 | ||||
| -rw-r--r-- | modules/default.nix | 1 | ||||
| -rw-r--r-- | modules/flake/configurations.nix | 10 | ||||
| -rw-r--r-- | modules/flake/default.nix | 1 | ||||
| -rw-r--r-- | modules/nixos/default.nix | 1 | ||||
| -rw-r--r-- | modules/nixos/server/default.nix | 2 | ||||
| -rw-r--r-- | modules/nixos/suites/default.nix | 6 | ||||
| -rw-r--r-- | modules/nixos/suites/personal.nix | 18 | ||||
| -rw-r--r-- | modules/nixos/suites/server.nix | 23 | ||||
| -rw-r--r-- | modules/shared/default.nix | 12 | ||||
| -rw-r--r-- | modules/shared/nix.nix | 3 | ||||
| -rw-r--r-- | modules/shared/suites/default.nix | 5 | ||||
| -rw-r--r-- | modules/shared/suites/personal.nix | 15 | ||||
| -rw-r--r-- | modules/shared/users/default.nix | 11 | ||||
| -rw-r--r-- | modules/shared/users/seth.nix | 35 |
17 files changed, 147 insertions, 13 deletions
diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix index a685fab..4dfa561 100644 --- a/modules/darwin/default.nix +++ b/modules/darwin/default.nix @@ -2,5 +2,6 @@ flake.darwinModules = { default = ./base.nix; desktop = ./desktop.nix; + suites = ./suites; }; } diff --git a/modules/darwin/suites/default.nix b/modules/darwin/suites/default.nix new file mode 100644 index 0000000..b4bd1b5 --- /dev/null +++ b/modules/darwin/suites/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./personal.nix + ]; +} diff --git a/modules/darwin/suites/personal.nix b/modules/darwin/suites/personal.nix new file mode 100644 index 0000000..6f37936 --- /dev/null +++ b/modules/darwin/suites/personal.nix @@ -0,0 +1,11 @@ +{ + config, + lib, + ... +}: let + cfg = config.suites.personal; +in { + config = lib.mkIf cfg.enable { + desktop.enable = true; + }; +} diff --git a/modules/default.nix b/modules/default.nix index c5f7ce9..9268452 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -2,5 +2,6 @@ imports = [ ./nixos ./darwin + ./flake ]; } diff --git a/modules/flake/configurations.nix b/modules/flake/configurations.nix index ef1ae4e..314e85f 100644 --- a/modules/flake/configurations.nix +++ b/modules/flake/configurations.nix @@ -1,9 +1,7 @@ { config, lib, - withSystem, inputs, - self, ... }: let namespace = "configurations"; @@ -46,8 +44,7 @@ // { modules = args.modules ++ [../../systems/${name} {networking.hostName = name;}]; specialArgs = { - inherit inputs self; - inputs' = withSystem args.system ({inputs', ...}: inputs'); + inherit inputs; secretsDir = ../../secrets/${name}; }; } @@ -70,10 +67,7 @@ ] ++ args.modules; - extraSpecialArgs = { - inherit inputs self; - inputs' = withSystem args.pkgs.system ({inputs', ...}: inputs'); - }; + extraSpecialArgs = {inherit inputs;}; }); mapSystems = type: mapAttrs (name: _: mkSystem type name) cfg.${type}.systems; diff --git a/modules/flake/default.nix b/modules/flake/default.nix index e86bee4..8730f01 100644 --- a/modules/flake/default.nix +++ b/modules/flake/default.nix @@ -1,5 +1,6 @@ { flake.flakeModules = { configurations = import ./configurations.nix; + terranix = import ./terranix.nix; }; } diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 8d838bf..a7ba7f9 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -5,5 +5,6 @@ features = ./features; server = ./server; services = ./services; + suites = ./suites; }; } diff --git a/modules/nixos/server/default.nix b/modules/nixos/server/default.nix index d412067..baf05f9 100644 --- a/modules/nixos/server/default.nix +++ b/modules/nixos/server/default.nix @@ -21,6 +21,7 @@ in { tmp.cleanOnBoot = lib.mkDefault true; kernelPackages = lib.mkDefault pkgs.linuxPackages_hardened; }; + environment.etc."nix/inputs/nixpkgs".source = inputs.nixpkgs-stable.outPath; documentation = { enable = false; @@ -35,6 +36,7 @@ in { options = "-d --delete-older-than 2d"; }; + registry.n.flake = inputs.nixpkgs-stable; settings.allowed-users = [config.networking.hostName]; }; }; diff --git a/modules/nixos/suites/default.nix b/modules/nixos/suites/default.nix new file mode 100644 index 0000000..0d11285 --- /dev/null +++ b/modules/nixos/suites/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./personal.nix + ./server.nix + ]; +} diff --git a/modules/nixos/suites/personal.nix b/modules/nixos/suites/personal.nix new file mode 100644 index 0000000..830062b --- /dev/null +++ b/modules/nixos/suites/personal.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + secretsDir, + ... +}: let + cfg = config.suites.personal; +in { + config = lib.mkIf cfg.enable { + age = { + identityPaths = ["/etc/age/key"]; + secrets = { + rootPassword.file = secretsDir + "/rootPassword.age"; + sethPassword.file = secretsDir + "/sethPassword.age"; + }; + }; + }; +} diff --git a/modules/nixos/suites/server.nix b/modules/nixos/suites/server.nix new file mode 100644 index 0000000..ac0c001 --- /dev/null +++ b/modules/nixos/suites/server.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + ... +}: let + cfg = config.suites.server; +in { + options.suites.server = { + enable = lib.mkEnableOption "Server configuration set"; + }; + + config = lib.mkIf cfg.enable { + features.tailscale = { + enable = true; + ssh.enable = true; + }; + + server = { + enable = true; + secrets.enable = true; + }; + }; +} diff --git a/modules/shared/default.nix b/modules/shared/default.nix index d6ec316..edd1f34 100644 --- a/modules/shared/default.nix +++ b/modules/shared/default.nix @@ -1,9 +1,15 @@ { lib, - self, + inputs, ... -}: { - imports = [./nix.nix]; +}: let + inherit (inputs) self; +in { + imports = [ + ./nix.nix + ./suites + ./users + ]; system.configurationRevision = self.rev or self.dirtyRev or "dirty-unknown"; diff --git a/modules/shared/nix.nix b/modules/shared/nix.nix index 60959f9..770e7e4 100644 --- a/modules/shared/nix.nix +++ b/modules/shared/nix.nix @@ -3,7 +3,6 @@ lib, pkgs, inputs, - self, ... }: { nix = { @@ -29,7 +28,7 @@ }; nixpkgs = { - overlays = [self.overlays.default]; + overlays = [inputs.self.overlays.default]; config.allowUnfree = lib.mkDefault true; }; } diff --git a/modules/shared/suites/default.nix b/modules/shared/suites/default.nix new file mode 100644 index 0000000..b4bd1b5 --- /dev/null +++ b/modules/shared/suites/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./personal.nix + ]; +} diff --git a/modules/shared/suites/personal.nix b/modules/shared/suites/personal.nix new file mode 100644 index 0000000..3c5146a --- /dev/null +++ b/modules/shared/suites/personal.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.suites.personal; +in { + options.suites.personal = { + enable = lib.mkEnableOption "Personal configuration set"; + }; + + config = lib.mkIf cfg.enable { + users.seth.enable = true; + }; +} diff --git a/modules/shared/users/default.nix b/modules/shared/users/default.nix new file mode 100644 index 0000000..6e1a3f6 --- /dev/null +++ b/modules/shared/users/default.nix @@ -0,0 +1,11 @@ +{inputs, ...}: { + imports = [ + ./seth.nix + ]; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs;}; + }; +} diff --git a/modules/shared/users/seth.nix b/modules/shared/users/seth.nix new file mode 100644 index 0000000..0c98fc9 --- /dev/null +++ b/modules/shared/users/seth.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.users.seth; +in { + options.users.seth = { + enable = lib.mkEnableOption "Seth's configuration & home"; + }; + + config = lib.mkIf cfg.enable { + users.users.seth = + { + shell = pkgs.fish; + home = lib.mkDefault ( + if pkgs.stdenv.isDarwin + then "/Users/seth" + else "/home/seth" + ); + } + // lib.optionalAttrs pkgs.stdenv.isLinux { + extraGroups = ["wheel"]; + isNormalUser = true; + hashedPasswordFile = lib.mkDefault config.age.secrets.sethPassword.path; + }; + + programs.fish.enable = lib.mkDefault true; + + home-manager.users.seth = { + imports = [../../../users/seth]; + }; + }; +} |
