diff --git a/DEPLOY.md b/DEPLOY.md index 6f66402f..9eae961c 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -72,7 +72,7 @@ sudo -u dogiintern git -C /home/dogiintern/dogfather-universe pull --ff-only ori sudo -u dogiintern bash -c 'cd /home/dogiintern/dogfather-universe/server-internal && npm ci' && \ sudo -u dogiintern node -e "require('/home/dogiintern/dogfather-universe/server-internal/node_modules/better-sqlite3'); console.log('native Module laden: ok')" && \ sudo systemctl restart dogiintern.service && \ -sleep 2 && echo "Dienst:" $(systemctl is-active dogiintern.service) && \ +sleep 6 && echo "Dienst:" $(systemctl is-active dogiintern.service) && \ curl -s -o /dev/null -w "health nach Neustart: %{http_code}\n" https://postfach.dogfather-universe.com/health ``` @@ -82,6 +82,23 @@ Deshalb `git -C ` (braucht kein cd) und das `npm ci` in einer `sudo -u dogiintern bash -c 'cd … && npm ci'`-Shell, die den Wechsel als dogiintern ausführt. Ein `cd` als erste Zeile scheitert an „Keine Berechtigung". +**Zwei Warnungen von `npm ci`, die HARMLOS sind (am 28.08.2026 verifiziert):** + +1. `npm warn allow-scripts … better-sqlite3 … (install: prebuild-install || node-gyp rebuild)` + — better-sqlite3 baut sich normalerweise über ein Install-Skript. Die + allowScripts-Sperre auf dem Konto blockiert das, aber `prebuild-install` + lädt ein fertig kompiliertes Binary, das ohne den Build-Schritt funktioniert. + **Kontrolle:** Läuft der Dienst danach (`active`) und steht in den Logs + „… Einstellungen aus der Datenbank geladen", ist better-sqlite3 in Ordnung. + Der `native Module laden: ok`-Schritt im Block prüft genau das vorab. +2. `npm warn deprecated prebuild-install@7.1.3` — nur ein Hinweis, kein Fehler. + +**`sleep 6`, nicht 2.** Der Dienst braucht nach dem Neustart ein paar Sekunden, +bis er auf Port 4200 hört. Ein zu früher health-Check meldet sonst kurzzeitig +`502` (Caddy erreicht den Dienst noch nicht) und `Dienst: activating`, obwohl +gleich darauf alles läuft. Erst bei anhaltendem 502/activating ist wirklich +etwas kaputt — dann `sudo systemctl status dogiintern.service --no-pager` ansehen. + Erwartete letzte Zeilen: `native Module laden: ok`, `Dienst: active`, `health nach Neustart: 200`. Kommt stattdessen ein Abbruch VOR dem Neustart, ist nichts passiert — der alte Dienst läuft weiter, und der Fehler (meist ein