{ config, lib, pkgs, ... }: let ipAddress = "10.1.1.1"; in { imports = [ ./wg.nix ]; # Setup bootloader boot._loader.enable = true; # Enable common options _archetypes = { profiles = { headless = { enable = true; home.users.timmy.enable = true; }; btrfs.enable = true; }; }; # Network config networking = { # Label lan and wan interfaces _interfaceLabels = { enable = true; interfaces = { lan0 = "98:b7:85:22:9b:43"; # External wan0 = "54:ee:75:8c:4b:2d"; # Internal }; }; # Set ip addresses interfaces = { lan0.ipv4.addresses = [ { address = ipAddress; prefixLength = 24; } { address = "192.168.77.4"; prefixLength = 24; } ]; wan0.ipv4.addresses = [{ address = "46.110.173.163"; # Reserved static ip for wg-router prefixLength = 31; }]; }; defaultGateway = { address = "46.110.173.161"; interface = "wan0"; }; # Firewall rules firewall = { interfaces.wan0 = { allowedUDPPorts = [ 51820 ]; }; }; }; # Router config services._router = { routing = { enable = true; interfaces = { lan = [ "lan0" ]; wan = "wan0"; }; }; dnsDhcpConfig = { dhcp.enable = false; # Point to separate dns server at pls.lan for local resolution localResolution = { localDomain = "pls.lan"; localDnsAddress = "192.168.77.1@53"; localReverseZone = "77.168.192.in-addr.arpa"; }; #dhcp = { # defaultGateway = ipAddress; # localhostIp = ipAddress; # rangeStart = "10.1.1.100"; # rangeEnd = "10.1.1.250"; # staticLeases = { # idrac-8HT2W52 = { # macAddress = "18:fb:7b:9d:16:b3"; # staticIp = "10.1.1.10"; # }; # }; #}; }; }; # Enable user timmy _users.timmy.enable = true; system.stateVersion = "25.05"; }