{ inputs, pkgs, ... }: { imports = [ ./vm-base.nix ]; config = { my.vm = { name = "lab01"; ip4 = "192.168.0.5"; }; # environment.systemPackages = with pkgs; [ # # ]; networking.firewall.allowedTCPPorts = [ 80 443 ]; services.caddy = { enable = true; virtualHosts = { "feed.rperce.net".extraConfig = '' reverse_proxy http://192.168.0.5:8080 ''; "barkeep.dukeceph.xyz".extraConfig = '' reverse_proxy http://192.168.0.2:8000 ''; "barkeep.rperce.net".extraConfig = '' reverse_proxy http://192.168.0.2:8000 ''; "minecraft.dukeceph.xyz".extraConfig = '' reverse_proxy http://192.168.0.4:8080 ''; "immich.rperce.net".extraConfig = '' reverse_proxy http://192.168.0.2:2283 ''; "metrics.rperce.net".extraConfig = '' reverse_proxy http://192.168.0.6:3000 ''; "jellyfin.rperce.net".extraConfig = '' reverse_proxy http://192.168.0.2:8096 ''; "forge.rperce.net".extraConfig = '' reverse_proxy http://192.168.0.5:3333 ''; "unifi.rperce.net".extraConfig = '' reverse_proxy 192.168.0.100:8443 { transport http { tls_insecure_skip_verify } header_up - Authorization } ''; }; }; services.miniflux = { enable = true; adminCredentialsFile = "/mnt/nfs/miniflux/admin-credentials"; config = { LISTEN_ADDR = "0.0.0.0:8080"; }; }; services.forgejo = { enable = true; database.type = "postgres"; lfs.enable = true; settings = { server = { DOMAIN = "forge.rperce.net"; ROOT_URL = "https://forge.rperce.net/"; HTTP_PORT = 3333; }; service.DISABLE_REGISTRATION = true; actions = { ENABLED = true; DEFAULT_ACTIONS_URL = "github"; }; mailer.ENABLED = false; }; }; }; }