DEPLOY.md: interner Deploy-Block ohne führendes cd
Der Block scheiterte in der Praxis am ersten "cd /home/dogiintern/...": Das Verzeichnis ist 700, selbst dogi kommt per cd nicht hinein, nur dogiintern über sudo -u. Jetzt git -C statt cd, und das npm ci in einer sudo -u dogiintern bash -c 'cd ... && npm ci'-Shell. Mit Warnhinweis, warum kein cd davor stehen darf. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -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 <pfad>` (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
|
||||
|
||||
Reference in New Issue
Block a user