From 5c546207e71f6b99508dac6030a0becf2f002071 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Thu, 27 Aug 2026 12:03:52 +0200 Subject: [PATCH] =?UTF-8?q?DEPLOY.md:=20interner=20Deploy-Block=20ohne=20f?= =?UTF-8?q?=C3=BChrendes=20cd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- DEPLOY.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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