{ config, lib, pkgs, ... }: { imports = [ ../template2/hardware-configuration.nix ../../system ../../common/vm ]; # Host metadata (adjust as needed) homelab.host = { tier = "test"; # Start in test tier, move to prod after validation }; # Enable Vault integration vault.enable = true; # Enable remote deployment via NATS homelab.deploy.enable = true; nixpkgs.config.allowUnfree = true; boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/vda"; networking.hostName = "testvm01"; networking.domain = "home.2rjus.net"; networking.useNetworkd = true; networking.useDHCP = false; services.resolved.enable = true; networking.nameservers = [ "10.69.13.5" "10.69.13.6" ]; systemd.network.enable = true; systemd.network.networks."ens18" = { matchConfig.Name = "ens18"; address = [ "10.69.13.20/24" ]; routes = [ { Gateway = "10.69.13.1"; } ]; linkConfig.RequiredForOnline = "routable"; }; time.timeZone = "Europe/Oslo"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.tarball-ttl = 0; environment.systemPackages = with pkgs; [ vim wget git ]; # Test nginx with ACME certificate from OpenBao PKI services.nginx = { enable = true; virtualHosts."testvm01.home.2rjus.net" = { forceSSL = true; enableACME = true; locations."/" = { root = pkgs.writeTextDir "index.html" ''
If you're seeing this over HTTPS, the migration worked!
Why do programmers prefer dark mode?
Because light attracts bugs.
Certificate issued by: vault.home.2rjus.net
''; }; }; }; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. networking.firewall.enable = false; system.stateVersion = "25.11"; # Did you read the comment? }