let common = { boot.loader.grub.devices = [ "/dev/sda" ]; i18n = { consoleFont = "Lat2-Terminus16"; consoleKeyMap = "fr-bepo"; defaultLocale = "en_US.UTF-8"; }; services = { openssh = { enable = true; permitRootLogin = "yes"; }; }; networking.firewall.allowedTCPPorts = [ 22 ]; users.mutableUsers = false; security.initialRootPassword = "$6$hoiRRInkFqRV$WmQzqHPTRqaptmXPqNKfIBmiyyckmHKksVJZd94WQ0HHNx5wnGWL76H8.pN.gQ.9Mf.JaVL6oSAw4MjMoTcSF1"; }; in { network.description = "DJL machines"; # TF2 server rogerRabbit = { config, pkgs, lib, ... }: lib.recursiveUpdate common { imports = [ ./rogerRabbit-hw.nix ]; environment.systemPackages = with pkgs; [ steam-run ]; nixpkgs.config.allowUnfree = true; }; # Urban Terror server jessicaRabbit = { config, pkgs, lib, ... }: lib.recursiveUpdate common { imports = [ ./jessicaRabbit-hw.nix ]; }; # file server bongo = { config, pkgs, lib, ... }: lib.recursiveUpdate common { imports = [ ./bongo-hw.nix ]; }; # DHCP/DNS server eddieValiant = { config, pkgs, lib, ... }: lib.recursiveUpdate common { imports = [ ./eddieValiant-hw.nix ]; services = { dhcpd4 = { enable = true; interfaces = [ "enp2s0" ]; machines = [ { ethernetAddress = "28:80:23:00:2f:45"; hostName = "era"; ipAddress = "10.42.0.254"; } { ethernetAddress = "00:23:ae:82:82:7a"; hostName = "rogerRabbit"; ipAddress = "10.42.0.2"; } { ethernetAddress = "00:23:ae:88:fb:b9"; hostName = "jessicaRabbit"; ipAddress = "10.42.0.3"; } { ethernetAddress = "00:21:9b:2f:1f:99"; hostName = "bongo"; ipAddress = "10.42.0.4"; } ]; extraConfig = '' subnet 10.42.0.0 netmask 255.255.0.0 { authoritative; range 10.42.0.50 10.42.0.200; default-lease-time 3600; max-lease-time 3600; option subnet-mask 255.255.0.0; option broadcast-address 10.42.255.255; option routers 10.42.0.0; #option domain-name-servers 10.42.0.1; #option domain-name "djl.local"; } ''; }; }; networking = { dhcpcd.enable = false; interfaces."enp2s0".ipAddress = "10.42.0.1"; interfaces."enp2s0".prefixLength = 16; }; }; }