diff options
-rw-r--r-- | flake.lock | 27 | ||||
-rw-r--r-- | flake.nix | 21 | ||||
-rw-r--r-- | hardware-configuration.nix | 35 | ||||
-rw-r--r-- | hosts/server1/configuration.nix (renamed from configuration.nix) | 11 | ||||
-rw-r--r-- | hosts/server1/networking.nix (renamed from networking.nix) | 0 | ||||
-rw-r--r-- | services/default.nix | 8 | ||||
-rw-r--r-- | services/services/minecraft.nix (renamed from services/minecraft.nix) | 0 | ||||
-rw-r--r-- | services/services/nix.nix | 18 | ||||
-rw-r--r-- | services/services/opensshd.nix (renamed from services/opensshd.nix) | 0 | ||||
-rw-r--r-- | services/services/rust-motd.nix (renamed from services/rust-motd.nix) | 0 | ||||
-rw-r--r-- | system/default.nix | 8 | ||||
-rw-r--r-- | system/system/fileSystemLayouts.nix | 45 | ||||
-rw-r--r-- | system/system/hardware.nix | 9 | ||||
-rw-r--r-- | system/system/packages.nix (renamed from packages.nix) | 0 | ||||
-rw-r--r-- | system/system/users.nix (renamed from users.nix) | 0 |
15 files changed, 141 insertions, 41 deletions
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..2e52203 --- /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."server1" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = attrs; + modules = [./hosts/server1/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/configuration.nix b/hosts/server1/configuration.nix index 8fc047a..729ef0f 100644 --- a/configuration.nix +++ b/hosts/server1/configuration.nix @@ -1,13 +1,10 @@ {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 + ../../system + + ../../services ]; boot.cleanTmpDir = true; @@ -15,6 +12,8 @@ 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/server1/networking.nix index 26d6719..26d6719 100644 --- a/networking.nix +++ b/hosts/server1/networking.nix diff --git a/services/default.nix b/services/default.nix new file mode 100644 index 0000000..6983529 --- /dev/null +++ b/services/default.nix @@ -0,0 +1,8 @@ +{config, ...}: { + imports = [ + ./services/minecraft.nix + ./services/nix.nix + ./services/opensshd.nix + ./services/rust-motd.nix + ]; +} diff --git a/services/minecraft.nix b/services/services/minecraft.nix index 754c974..754c974 100644 --- a/services/minecraft.nix +++ b/services/services/minecraft.nix diff --git a/services/services/nix.nix b/services/services/nix.nix new file mode 100644 index 0000000..bd562ec --- /dev/null +++ b/services/services/nix.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: { + nix = { + # gc = { + # automatic = true; + # dates = "daily"; + # options = "--delete-older-than 3"; + # }; + settings = { + auto-optimise-store = true; + experimental-features = ["nix-command" "flakes"]; + }; + }; +} diff --git a/services/opensshd.nix b/services/services/opensshd.nix index cb9f2ba..cb9f2ba 100644 --- a/services/opensshd.nix +++ b/services/services/opensshd.nix diff --git a/services/rust-motd.nix b/services/services/rust-motd.nix index 21bc1cd..21bc1cd 100644 --- a/services/rust-motd.nix +++ b/services/services/rust-motd.nix diff --git a/system/default.nix b/system/default.nix new file mode 100644 index 0000000..2af4982 --- /dev/null +++ b/system/default.nix @@ -0,0 +1,8 @@ +{config, ...}: { + imports = [ + ./system/fileSystemLayouts.nix + ./system/hardware.nix + ./system/packages.nix + ./system/users.nix + ]; +} diff --git a/system/system/fileSystemLayouts.nix b/system/system/fileSystemLayouts.nix new file mode 100644 index 0000000..9d03a05 --- /dev/null +++ b/system/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/system/hardware.nix b/system/system/hardware.nix new file mode 100644 index 0000000..c4c7dc9 --- /dev/null +++ b/system/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/system/packages.nix index 4d33c6e..4d33c6e 100644 --- a/packages.nix +++ b/system/system/packages.nix diff --git a/users.nix b/system/system/users.nix index 34e1648..34e1648 100644 --- a/users.nix +++ b/system/system/users.nix |