summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorene <ene@sils.li>2023-02-04 21:37:52 +0100
committerene <ene@sils.li>2023-02-04 21:44:35 +0100
commitcdbd9f7f83099a48bfa59a886b6e51790d898a24 (patch)
treecffd2aede95072613ba407734995321387ade392
parentFeat: Imported the headless profile (diff)
downloadnixos-server-cdbd9f7f83099a48bfa59a886b6e51790d898a24.tar.gz
nixos-server-cdbd9f7f83099a48bfa59a886b6e51790d898a24.zip
Flake: Changed the configuration to a flake
Nix flakes make a lot of things very easy.
-rw-r--r--configuration.nix21
-rw-r--r--flake.lock27
-rw-r--r--flake.nix21
-rw-r--r--hardware-configuration.nix35
-rw-r--r--hosts/vhack.eu/configuration.nix25
-rw-r--r--hosts/vhack.eu/networking.nix (renamed from networking.nix)0
-rw-r--r--system/fileSystemLayouts.nix45
-rw-r--r--system/hardware.nix9
-rw-r--r--system/packages.nix (renamed from packages.nix)0
-rw-r--r--system/users.nix (renamed from users.nix)0
10 files changed, 127 insertions, 56 deletions
diff --git a/configuration.nix b/configuration.nix
deleted file mode 100644
index 8fc047a..0000000
--- a/configuration.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{pkgs, ...}: {
-  imports = [
-    ./hardware-configuration.nix
-    ./packages.nix
-    ./networking.nix # network configuration that just works
-    ./users.nix
-
-    ./services/minecraft.nix
-    ./services/rust-motd.nix
-    ./services/opensshd.nix
-  ];
-
-  boot.cleanTmpDir = true;
-  zramSwap.enable = true;
-  networking.hostName = "server1";
-  networking.domain = "vhack.eu";
-
-  system.stateVersion = "22.11";
-}
-# vim: ts=2
-
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..8af459c
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,27 @@
+{
+  "nodes": {
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1675512093,
+        "narHash": "sha256-u1CY4feK14B57E6T+0Bhkuoj8dpBxCPrWO+SP87UVP8=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "8e8240194eda25b61449f29bb5131e02b28a5486",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-22.11-small",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..a6d95b6
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,21 @@
+# vim: ts=2
+{
+  description = "Nixos server config";
+
+  inputs = {
+    nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11-small";
+  };
+
+  outputs = {
+    self,
+    nixpkgs,
+    ...
+  } @ attrs: {
+    nixosConfigurations."vhack.eu" = nixpkgs.lib.nixosSystem {
+      system = "x86_64-linux";
+      specialArgs = attrs;
+      modules = [./hosts/vhack.eu/configuration.nix];
+    };
+  };
+}
+
diff --git a/hardware-configuration.nix b/hardware-configuration.nix
deleted file mode 100644
index d960da6..0000000
--- a/hardware-configuration.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{modulesPath, ...}: {
-  imports = [
-      (modulesPath + "/profiles/qemu-guest.nix")
-      (modulesPath + "/profiles/headless.nix")
-  ];
-  boot.loader.grub.device = "/dev/vda";
-  boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
-  boot.initrd.kernelModules = ["nvme" "btrfs"];
-  fileSystems = {
-    "/" = {
-      device = "tmpfs";
-      fsType = "tmpfs";
-      options = ["defaults" "size=2G" "mode=755"];
-    };
-    "/nix" = {
-      device = "/dev/vda3";
-      fsType = "btrfs";
-      options = ["subvol=nix" "compress-force=zstd"];
-    };
-    "/srv" = {
-      device = "/dev/vda3";
-      fsType = "btrfs";
-      options = ["subvol=storage" "compress-force=zstd"];
-    };
-    "/boot" = {
-      device = "/dev/vda3";
-      options = ["subvol=boot" "compress-force=zstd"];
-    };
-
-    "/etc/nixos" = {
-      device = "/srv/nix-config";
-      options = ["bind"];
-    };
-  };
-}
diff --git a/hosts/vhack.eu/configuration.nix b/hosts/vhack.eu/configuration.nix
new file mode 100644
index 0000000..a58e58d
--- /dev/null
+++ b/hosts/vhack.eu/configuration.nix
@@ -0,0 +1,25 @@
+{pkgs, ...}: {
+  imports = [
+    ./networking.nix # network configuration that just works
+
+    ../../system/hardware.nix
+    ../../system/fileSystemLayouts.nix
+    ../../system/packages.nix
+    ../../system/users.nix
+
+    ../../services/minecraft.nix
+    ../../services/rust-motd.nix
+    ../../services/opensshd.nix
+  ];
+
+  boot.cleanTmpDir = true;
+  zramSwap.enable = true;
+  networking.hostName = "server1";
+  networking.domain = "vhack.eu";
+
+  system.fileSystemLayouts.mainDisk = "/dev/vda3";
+
+  system.stateVersion = "22.11";
+}
+# vim: ts=2
+
diff --git a/networking.nix b/hosts/vhack.eu/networking.nix
index 26d6719..26d6719 100644
--- a/networking.nix
+++ b/hosts/vhack.eu/networking.nix
diff --git a/system/fileSystemLayouts.nix b/system/fileSystemLayouts.nix
new file mode 100644
index 0000000..9d03a05
--- /dev/null
+++ b/system/fileSystemLayouts.nix
@@ -0,0 +1,45 @@
+{
+  modulesPath,
+  config,
+  lib,
+  ...
+}:
+with lib; let
+  cfg = config.system.fileSystemLayouts;
+in {
+  options.system.fileSystemLayouts = {
+    mainDisk = mkOption {
+      type = lib.types.path;
+      example = literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5";
+      description = lib.mdDoc "Path to the main disk";
+    };
+  };
+  config = {
+    fileSystems = {
+      "/" = {
+        device = "tmpfs";
+        fsType = "tmpfs";
+        options = ["defaults" "size=2G" "mode=755"];
+      };
+      "/nix" = {
+        device = cfg.mainDisk;
+        fsType = "btrfs";
+        options = ["subvol=nix" "compress-force=zstd"];
+      };
+      "/srv" = {
+        device = cfg.mainDisk;
+        fsType = "btrfs";
+        options = ["subvol=storage" "compress-force=zstd"];
+      };
+      "/boot" = {
+        device = cfg.mainDisk;
+        options = ["subvol=boot" "compress-force=zstd"];
+      };
+
+      "/etc/nixos" = {
+        device = "/srv/nix-config";
+        options = ["bind"];
+      };
+    };
+  };
+}
diff --git a/system/hardware.nix b/system/hardware.nix
new file mode 100644
index 0000000..c4c7dc9
--- /dev/null
+++ b/system/hardware.nix
@@ -0,0 +1,9 @@
+{modulesPath, ...}: {
+  imports = [
+    (modulesPath + "/profiles/qemu-guest.nix")
+    (modulesPath + "/profiles/headless.nix")
+  ];
+  boot.loader.grub.device = "/dev/vda";
+  boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
+  boot.initrd.kernelModules = ["nvme" "btrfs"];
+}
diff --git a/packages.nix b/system/packages.nix
index 4d33c6e..4d33c6e 100644
--- a/packages.nix
+++ b/system/packages.nix
diff --git a/users.nix b/system/users.nix
index 34e1648..34e1648 100644
--- a/users.nix
+++ b/system/users.nix