nixops-lan-party/lan-network.nix

95 lines
2.6 KiB
Nix

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;
};
};
}