NixOS: Relaunch-Site unter mt-rad.de bereitstellen (Soft-Launch) #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Die neue Hugo-Site soll unter mt-rad.de erreichbar sein (Soft-Launch/Beta), damit man sie live ansehen kann.
Ziel
mt-rad.de(+ ggf.www.) auf dem VPS, TLS via ACME/Let's Encrypt, der das vom CI (#14) deploytepublic/ausliefert.Rahmen / Vorsicht — WICHTIG
colmena apply/ DNS-Änderung erst nach Review.Ergebnis in diesem Issue festhalten: vhost-/ACME-Config (als Commit/PR im nixos-Repo), nötige DNS-Records (konkret vorbereitet), Reihenfolge fürs Scharfschalten.
Bearbeitung: Subagent (Deploy-Epic 1–3, Opus), Entwurf/Plan — kein Apply/DNS-Change ohne Review.
Entwurf fertig (nur Code + Plan, nichts deployt/DNS geändert)
Gewählter Ansatz + Begründung
Kein NixOS-
services.nginx+security.acme, sondern ein statischer nginx-Container hinter dem bestehenden traefik — 1:1 nach dem Muster vonmodules/rybbit.nix(rybbit.mta-r.de).Begründung (Best-Practice-Abgleich): Der VPS terminiert TLS zentral in traefik (Ports 80/443 gehören traefik, in einem podman-Container), und alle Dienste werden über Container-Labels geroutet. Ein zweiter nginx + zweiter ACME-Client würde mit traefik um 80/443 konkurrieren und aus dem etablierten Muster ausbrechen. Der additive Container fügt sich nahtlos ein.
TLS via http-01 (
httpresolver), nicht Wildcard/DNS-01: Das Hetzner-Wildcard-Zert*.f4mily.netdecktmt-rad.denicht ab, und DNS-01 über denhetzner-Resolver ist unmöglich — die Zonemt-rad.deliegt bei All-Inkl/KAS, traefik kann dort keine_acme-challengeschreiben. Also derselbehttpresolver(http-01) wie bei rybbit. Konsequenz für die Reihenfolge: http-01 verlangt, dassmt-rad.deper DNS bereits auf den VPS zeigt, bevor das Zertifikat ausgestellt werden kann.Artefakte
Homelab/homelab-infrastructure, Branchfeat/mt-rad-site(Worktree, nicht gemergt, nichtcolmena apply).feat/rybbit-vps(die aktuell auf dem VPS deployte Realität inkl.httpresolver) — Merge-Reihenfolge beachten (stackt auf der rybbit-Arbeit).nixos/modules/mt-rad-site.nix(neu): nginx:1.27-alpine, Mount/docker/mt-rad.de/site:ro, traefik-Routermt-rad(Apex) +mt-rad-www(www→apex 301), deklarativer Deploy-Usermtrad-deploy, tmpfiles fürs Zielverzeichnis.nixos/hosts/hetzner-vps1.nix: eine Import-Zeile ergänzt.nix-instantiate --parseOK für beide Dateien.Konkrete DNS-Records (VORBEREITET — noch NICHT gesetzt)
Zone
mt-rad.de.liegt bei All-Inkl/KAS. VPS-Ziel =91.99.145.19/2a01:4f8:c17:ed08::1(identisch zu den bestehendenrybbit.mta-r.de-Records).@85.13.150.169→91.99.145.19@2a01:4f8:c17:ed08::1www91.99.145.19*-Wildcard (der auf All-Inkl zeigt)www2a01:4f8:c17:ed08::1*A, MX, SPF,_dmarc, DKIMReihenfolge zum Scharfschalten
AAAA_PLATZHALTER_DEPLOY_PUBKEYersetzen), Review.colmena apply→ Containermt-rad-site+ Usermtrad-deploy+ Verzeichnis entstehen (Cert noch pending, Verzeichnis leer → 403 bis Deploy)./docker/mt-rad.de/site.https://mt-rad.deerreichbar.Offene Fragen / Risiken
httpresolvermuss in/docker/traefik/config/traefik.yaml(on-host) existieren — durch rybbit vorhanden, bitte verifizieren.poc.mta-r.deweiter betreiben oder abschalten?baseURL/site_urlsind im #14-Branch bereits aufmt-rad.deumgestellt.feat/mt-rad-sitestackt auffeat/rybbit-vps.✅ Go-Live: https://mt-rad.de ist live (Soft-Launch)
Umgesetzt 2026-07-07:
mt-rad-site.nixauffeat/mt-rad-sitescharfgeschaltet (statischer nginx-Container hinter Traefik, nach rybbit-Muster). Deploy vianixos-rebuild switch --flake .#hetzner-vps1(der colmena-Flake-Output ist mit colmena 0.5 kaputt — brauchtcolmenaHive; nixos-rebuild übernixosConfigurationsumgeht das). Deploy-Usermtrad-deploy+ SSH-Key eingerichtet.hugo --minify+ rsync nach/docker/mt-rad.de/site. Deployt wurde main (baseURL/site_url→mt-rad.de) + Favicon-Fix. Brand-Wortmarke (poc-hugo-sveltia PR#2) und 200-Artikel-Migration (PR#3) sind bewusst noch nicht gemergt (Optik-/Bild-Review offen).www-A → 91.99.145.19. Mail (MX/SPF/DKIM) und Wildcard unangetastet. Produktives mta-r.de ebenfalls unberührt.www→apex-301 aktiv.⚠️ Zwischenfall (behoben): rybbit-Ausfall durch den Deploy
Der Switch triggerte einen latenten Bug in
rybbit.nix: die tmpfiles-Regelnd /docker/rybbit/*-data 0750 root rootsetzen die DB-Datenverzeichnisse bei jedem systemd-tmpfiles-Lauf auf root:root — die Container laufen aber als uid 999/101 → Postgres/Redis/ClickHouse verloren den Zugriff, rybbit-Login kaputt. Behoben: Ownership wiederhergestellt + Regeln auf die korrekten uids korrigiert (durabler Fix, per Switch verifiziert). rybbit läuft wieder (api/health 200).Noch offen (→ #14, #16)
VPS_DEPLOY_SSH_KEY+VPS_SSH_KNOWN_HOSTS, MT-R-Runner (Workflow liegt auffeat/ci-deploy).https://mt-rad.de/admin/für Sveltia (#16).