{ config, lib, pkgs, ... }: let endpoint = "195.201.245.25"; in { imports = [ ./fs.nix ]; boot.initrd.availableKernelModules = [ "ahci" "nvme" ]; boot.kernelModules = [ "kvm-amd" ]; boot.loader.grub = { mirroredBoots = [ { devices = [ "/dev/nvme0n1" ]; path = "/boot"; } { devices = [ "/dev/nvme1n1" ]; path = "/boot2"; } ]; }; networking = { domain = "vapor.systems"; hostName = "ettves"; hostId = "14e28906"; dhcpcd.enable = false; interfaces.eth0.ipv4.addresses = [ { address = endpoint; prefixLength = 26; } { address = "178.63.224.8"; prefixLength = 29; } { address = "178.63.224.9"; prefixLength = 29; } { address = "178.63.224.10"; prefixLength = 29; } { address = "178.63.224.11"; prefixLength = 29; } { address = "178.63.224.12"; prefixLength = 29; } { address = "178.63.224.13"; prefixLength = 29; } { address = "178.63.224.14"; prefixLength = 29; } { address = "178.63.224.15"; prefixLength = 29; } ]; interfaces.eth0.ipv6.addresses = [ { address = "2a01:4f8:231:56a::1"; prefixLength = 64; } { address = "2a01:4f8:231:56a::8"; prefixLength = 64; } { address = "2a01:4f8:231:56a::9"; prefixLength = 64; } { address = "2a01:4f8:231:56a::10"; prefixLength = 64; } { address = "2a01:4f8:231:56a::11"; prefixLength = 64; } { address = "2a01:4f8:231:56a::12"; prefixLength = 64; } { address = "2a01:4f8:231:56a::13"; prefixLength = 64; } { address = "2a01:4f8:231:56a::14"; prefixLength = 64; } { address = "2a01:4f8:231:56a::15"; prefixLength = 64; } ]; defaultGateway = "195.201.245.1"; defaultGateway6 = { address = "fe80::1"; interface = "eth0"; }; }; pubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIClYZUxD3Xb4bngOT03Bk/PQSwwYiSKuZm7lLoBEesLd root@ettves"; services.powerdns.role = "primary"; wireguard = { enable = true; roaming = true; inherit endpoint; v4 = { address = "10.10.0.1"; }; v6 = { address = "1"; }; publicKey = "5OTaf4MnSzTcCR10CGSrLFngGa3gdzajbqUKkRF+WlY="; allowedIPs = [ "10.10.0.0/24" "10.102.0.0/24" "fd15:3d8c:d429:102::/72" ]; }; deploy = { host = endpoint; buildOn = "remote"; substituteOnTarget = true; hermetic = false; }; }