Zum Inhalt springen

Deploy

Schritt-für-Schritt: Web-Deploy, Schema-Migration, Infra-Änderungen, Docs — welches just-Recipe wann.

Die Astro-Starlight-Dokumentation läuft in Produktion als eigener Docker-Compose-Service docs. Das Multi-Stage-Image baut die statischen Seiten mit Node 24 und liefert sie anschließend über nginx im Container aus.

docs.md-vernetzt.de → Host-nginx (TLS) → 127.0.0.1:3001 → mdv-docs:80

Der Host benötigt dafür weder Node/npm noch ein synchronisiertes /var/www-Verzeichnis.

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name docs.md-vernetzt.de;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
ssl_certificate /etc/letsencrypt/live/md-vernetzt.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/md-vernetzt.de/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
listen 80;
listen [::]:80;
server_name docs.md-vernetzt.de;
return 301 https://$host$request_uri;
}

Nach einer einmaligen Prüfung mit nginx -t und einem nginx-Reload genügt für alle weiteren Doku-Aktualisierungen:

Terminal-Fenster
just deploy-docs

Das Recipe zieht main, baut mdv-docs:latest, ersetzt ausschließlich den Docs-Container und zeigt anschließend dessen Status und Start-Logs.

Terminal-Fenster
just ps
curl -fsS http://127.0.0.1:3001/ >/dev/null
curl -fsS https://docs.md-vernetzt.de/ >/dev/null

mdv-docs muss als healthy erscheinen; beide HTTP-Prüfungen müssen mit Exit-Code 0 enden.