Add LAN-only music vhost and enable weekly autoUpgrade

- gateway: replace konnektor/api/auth/mailpit vhosts with
  music.home.lindenfelser.de -> 10.202.82.195:80, LAN-only (403 otherwise)
- common: enable system.autoUpgrade, pulling config from Gitea main and
  overriding nixpkgs to the nixos-25.11 tip for weekly package refresh;
  reboot allowed in a 04:00-06:00 window

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 18:51:02 +02:00
parent a0658b3a97
commit ad1dd816f4
2 changed files with 23 additions and 30 deletions
+18 -3
View File
@@ -45,9 +45,24 @@
# QEMU guest agent (for VM integration when running as guest) # QEMU guest agent (for VM integration when running as guest)
services.qemuGuest.enable = true; services.qemuGuest.enable = true;
# Automatic updates (security) # Automatic updates — pull the committed config from Gitea and rebuild.
# Jeder Host baut sein eigenes Flake-Attribut (= networking.hostName).
system.autoUpgrade = { system.autoUpgrade = {
enable = false; # Manual control via flake enable = true;
allowReboot = false; flake = "git+https://git.home.lindenfelser.de/danlin/infra-nix.git?ref=main#${config.networking.hostName}";
# nixpkgs beim Build auf die aktuelle Spitze von nixos-25.11 ziehen,
# statt den in main gepinnten flake.lock zu verwenden — so kommen
# wöchentlich frische Pakete ohne separaten Lock-Commit.
flags = [
"--override-input" "nixpkgs" "github:NixOS/nixpkgs/nixos-25.11"
];
dates = "Sun 04:00";
randomizedDelaySec = "30min";
# Kernel/Init-Updates greifen nur nach Reboot — nachts im Fenster erlauben.
allowReboot = true;
rebootWindow = {
lower = "04:00";
upper = "06:00";
};
}; };
} }
+5 -27
View File
@@ -42,38 +42,16 @@
reverse_proxy 10.202.82.6:3000 reverse_proxy 10.202.82.6:3000
''; '';
}; };
# konnektor-web — Frontend # Music-Server — NUR aus dem LAN 10.202.82.0/24 erreichbar.
"konnektor.home.lindenfelser.de" = { # Alle anderen IPs bekommen 403, ohne dass der Upstream je angerufen wird.
extraConfig = '' "music.home.lindenfelser.de" = {
reverse_proxy 10.202.82.49:8082
'';
};
# konnektor-api Frontend REST
"api.konnektor.home.lindenfelser.de" = {
extraConfig = ''
reverse_proxy 10.202.82.49:8080
'';
};
# Zitadel OIDC
# Wichtig: `header_up Host {host}` — Zitadel routet anhand des Host-
# Headers; ohne das sieht es den Upstream-Container-Hostname und failt.
"auth.konnektor.home.lindenfelser.de" = {
extraConfig = ''
reverse_proxy 10.202.82.49:8081 {
header_up Host {host}
}
'';
};
# Mailpit Web UI — NUR aus dem LAN 10.202.82.0/24 erreichbar.
# Alle anderen IPs bekommen 403, ohne dass Mailpit jemals angerufen wird.
"mailpit.konnektor.home.lindenfelser.de" = {
extraConfig = '' extraConfig = ''
@lan client_ip 10.202.82.0/24 @lan client_ip 10.202.82.0/24
handle @lan { handle @lan {
reverse_proxy 10.202.82.49:8025 reverse_proxy 10.202.82.195:80
} }
handle { handle {
respond "forbidden mailpit ist nur aus dem LAN 10.202.82.0/24 erreichbar" 403 respond "forbidden music ist nur aus dem LAN 10.202.82.0/24 erreichbar" 403
} }
''; '';
}; };