diff --git a/hosts/lambda.nix b/hosts/lambda.nix new file mode 100644 index 0000000..24e720f --- /dev/null +++ b/hosts/lambda.nix @@ -0,0 +1,92 @@ +{ lib, config, pkgs, ... }: + +let + hostname = "lambda"; + host-internal-ip = "10.0.0.3"; + host-storage-ip = "10.0.10.1"; + inherit (lib.strings) concatStringsSep; + +in { + + boot.kernelModules = [ "kvm-amd" ]; + + boot.loader.grub.enable = true; + boot.loader.grub.version = 2; + boot.loader.grub.device = "/dev/disk/by-label/nixos-root"; + + hardware.bluetooth.enable = false; + + imports = [ + ../defaults.nix + ../hardware-configuration.nix + ]; + + fudo.common = { + profile = "server"; + site = "seattle"; + }; + + fudo.slynk = { + enable = true; + }; + + networking = { + hostName = hostname; + + nameservers = [ host-internal-ip ]; + + # Create a bridge for VMs to use + macvlans = { + extif0 = { + interface = "enp3s0f1"; + mode = "bridge"; + }; + storageif0 = { + interface = "enp4s0f1"; + mode = "bridge"; + }; + }; + + interfaces = { + enp3s0f0.useDHCP = false; + enp3s0f1.useDHCP = false; + enp4s0f0.useDHCP = false; + enp4s0f1.useDHCP = false; + + extif0 = { + useDHCP = false; + macAddress = "02:50:f6:52:9f:9d"; + ipv4.addresses = [ + { + address = host-internal-ip; + prefixLength = 22; + } + # { + # address = "10.0.10.2"; + # prefixLength = 24; + # } + ]; + }; + + storageif0 = { + useDHCP = false; + macAddress = "02:65:d7:00:7d:1b"; + ipv4.addresses = [ + { + address = host-storage-ip; + prefixLength = 24; + } + ]; + }; + }; + }; + + services = { + ipfs = { + enable = true; + apiAddress = "/ip4/${host-internal-ip}/tcp/5001"; + autoMount = true; + enableGC = true; + }; + }; +}