summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/darwin/default.nix1
-rw-r--r--modules/darwin/suites/default.nix5
-rw-r--r--modules/darwin/suites/personal.nix11
-rw-r--r--modules/default.nix1
-rw-r--r--modules/flake/configurations.nix10
-rw-r--r--modules/flake/default.nix1
-rw-r--r--modules/nixos/default.nix1
-rw-r--r--modules/nixos/server/default.nix2
-rw-r--r--modules/nixos/suites/default.nix6
-rw-r--r--modules/nixos/suites/personal.nix18
-rw-r--r--modules/nixos/suites/server.nix23
-rw-r--r--modules/shared/default.nix12
-rw-r--r--modules/shared/nix.nix3
-rw-r--r--modules/shared/suites/default.nix5
-rw-r--r--modules/shared/suites/personal.nix15
-rw-r--r--modules/shared/users/default.nix11
-rw-r--r--modules/shared/users/seth.nix35
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];
+ };
+ };
+}