diff --git a/DEPLOY.md b/DEPLOY.md index 61254925..6f66402f 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -68,15 +68,20 @@ ein Lade-Test der nativen Module (better-sqlite3) durch sind — schlägt etwas fehl, läuft der alte Dienst unberührt weiter: ```bash -cd /home/dogiintern/dogfather-universe && \ -sudo -u dogiintern git pull --ff-only origin main && \ -sudo -u dogiintern npm --prefix server-internal ci && \ +sudo -u dogiintern git -C /home/dogiintern/dogfather-universe pull --ff-only origin main && \ +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) && \ curl -s -o /dev/null -w "health nach Neustart: %{http_code}\n" https://postfach.dogfather-universe.com/health ``` +**Wichtig — kein führendes `cd`.** `/home/dogiintern/` steht auf 700; selbst +`dogi` darf per `cd` nicht hinein, nur der Benutzer `dogiintern` über `sudo -u`. +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". + 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