diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-30 14:05:39 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-30 14:05:39 +0200 |
| commit | c153a351659e4596acfc31f00bf594343cbfcd68 (patch) | |
| tree | a9ed83de07711d6424fbea09aad28891bae5bfe4 /modules/vhack/di | |
| parent | hosts/server3: Setup prometheus server in agent mode (diff) | |
| download | nixos-server-c153a351659e4596acfc31f00bf594343cbfcd68.zip | |
modules: Use namespaces
That might make it easier in the future to merge different server
configs together (and thusly facilitate code-reuse.).
Diffstat (limited to 'modules/vhack/di')
| -rw-r--r-- | modules/vhack/di/disko/module.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/modules/vhack/di/disko/module.nix b/modules/vhack/di/disko/module.nix new file mode 100644 index 0000000..b4fc3c8 --- /dev/null +++ b/modules/vhack/di/disko/module.nix @@ -0,0 +1,78 @@ +{ + config, + lib, + ... +}: let + cfg = config.vhack.disko; + + defaultMountOptions = ["compress-force=zstd:15" "noatime"]; +in { + options.vhack.disko = { + enable = lib.mkEnableOption "disk configuration via disko"; + + disk = lib.mkOption { + type = lib.types.path; + example = "/dev/disk/by-id/ata-WDC_WD10SDRW-11A0XS0_WD-WXP2A901KJN5"; + description = "Path to the main disk"; + }; + }; + + config = lib.mkIf cfg.enable { + disko.devices = { + disk.main = { + type = "disk"; + device = cfg.disk; + + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = ["-f" "--label nixos"]; # f: Override existing partitions + + subvolumes = { + "/nix" = { + mountpoint = "/nix"; + mountOptions = defaultMountOptions; + }; + "/srv" = { + mountpoint = "/srv"; + mountOptions = defaultMountOptions; + }; + "/srv/.snapshots" = { + mountpoint = "/srv/.snapshots"; + mountOptions = defaultMountOptions; + }; + "/boot" = { + mountpoint = "/boot"; + mountOptions = defaultMountOptions; + }; + }; + }; + }; + }; + }; + }; + + nodev."/" = { + fsType = "tmpfs"; + mountOptions = ["defaults" "size=6G" "mode=755"]; + }; + }; + + fileSystems = { + "/srv" = { + neededForBoot = true; + }; + "/boot" = { + neededForBoot = true; + }; + }; + }; +} |
