diff options
Diffstat (limited to 'hosts/by-name/server1')
-rw-r--r-- | hosts/by-name/server1/configuration.nix | 46 | ||||
-rw-r--r-- | hosts/by-name/server1/hardware.nix | 14 | ||||
-rw-r--r-- | hosts/by-name/server1/networking.nix | 52 |
3 files changed, 112 insertions, 0 deletions
diff --git a/hosts/by-name/server1/configuration.nix b/hosts/by-name/server1/configuration.nix new file mode 100644 index 0000000..6bb1067 --- /dev/null +++ b/hosts/by-name/server1/configuration.nix @@ -0,0 +1,46 @@ +{config, ...}: { + imports = [ + ./networking.nix # network configuration that just works + ./hardware.nix + + ../../../system + ]; + + vhack = { + back = { + enable = true; + repositories = { + "${config.services.gitolite.dataDir}/vhack.eu/nixos-config.git" = { + domain = "issues.vhack.eu"; + port = 9220; + }; + }; + }; + etesync.enable = true; + git-server.enable = true; + nginx.enable = true; + nix-sync.enable = true; + openssh.enable = true; + peertube.enable = true; + postgresql.enable = true; + redlib.enable = true; + users.enable = true; + persist = { + enable = true; + directories = [ + "/var/log" + + # TODO(@bpeetz): Instead of persisting that, encode each uid/gid directly in the + # config. <2024-12-24> + "/var/lib/nixos" + ]; + }; + }; + + boot.tmp.cleanOnBoot = true; + zramSwap.enable = true; + networking.hostName = "server1"; + networking.domain = "vhack.eu"; + + system.stateVersion = "22.11"; +} diff --git a/hosts/by-name/server1/hardware.nix b/hosts/by-name/server1/hardware.nix new file mode 100644 index 0000000..9abc64c --- /dev/null +++ b/hosts/by-name/server1/hardware.nix @@ -0,0 +1,14 @@ +{modulesPath, ...}: { + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + (modulesPath + "/profiles/headless.nix") + ]; + + vhack.disko = { + enable = true; + # FIXME: Find a better way to specify the disk + disk = "/dev/vda"; + }; + boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk"]; + boot.initrd.kernelModules = []; +} diff --git a/hosts/by-name/server1/networking.nix b/hosts/by-name/server1/networking.nix new file mode 100644 index 0000000..dd9b9af --- /dev/null +++ b/hosts/by-name/server1/networking.nix @@ -0,0 +1,52 @@ +{lib, ...}: { + # This file was populated at runtime with the networking + # details gathered from the active system. + networking = { + nameservers = [ + "8.8.8.8" + ]; + defaultGateway = { + address = "89.58.56.1"; + interface = "eth0"; + }; + defaultGateway6 = { + address = "fe80::1"; + interface = "eth0"; + }; + dhcpcd.enable = false; + usePredictableInterfaceNames = lib.mkForce false; + interfaces = { + eth0 = { + ipv4.addresses = [ + { + address = "89.58.58.33"; + prefixLength = 22; + } + ]; + ipv6.addresses = [ + { + address = "2a03:4000:6a:3f3::1"; + prefixLength = 64; + } + ]; + ipv4.routes = [ + { + address = "89.58.56.1"; + prefixLength = 32; + } + ]; + ipv6.routes = [ + { + address = "fe80::1"; + prefixLength = 128; + } + ]; + }; + }; + }; + + # cat /sys/class/net/eth0/address + services.udev.extraRules = '' + ATTR{address}=="66:22:6d:82:93:9b", NAME="eth0" + ''; +} |