Dev-Server
Der Dev-Server ist lokal per SSH-Alias erreichbar:
ssh skintogo-dev
Wenn Codex den Alias wegen lokaler SSH-Include- oder Proxy-Konfiguration nicht sauber auflösen kann, soll explizit die User-Config verwendet werden:
ssh -F /home/floriang/.ssh/config skintogo-dev
Compose-Wrapper
Auf dem Dev-Server nicht direkt docker compose ... im Zielpfad zusammensetzen, sondern die erlaubten Wrapper verwenden:
sudo /usr/local/bin/skintogo/dev-compose ps
Der Wrapper wechselt nach /opt/skintogo/dev und führt dort den serverseitigen Compose-Stack aus:
#!/usr/bin/env bash
set -euo pipefail
cd /opt/skintogo/dev
exec /usr/bin/docker compose \
-f docker-compose.yml \
-f docker-compose.server.yml \
"$@"
Für direkte Dev-Deploys ohne Registry gibt es zusätzlich einen separaten Wrapper nur für docker load:
#!/usr/bin/env bash
set -euo pipefail
if [ "$#" -ne 0 ]; then
echo "This wrapper does not accept arguments." >&2
exit 2
fi
exec /usr/bin/docker load
Typische Codex-Kommandos über SSH
ssh skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose ps'
ssh -F /home/floriang/.ssh/config skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose ps'
ssh skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose logs --tail=100 backend'
ssh skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose logs -f backend'
ssh skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose exec -T postgres sh -lc '\''psql -U "$POSTGRES_USER" -d "$POSTGRES_DB"'\'''
ssh skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose exec -T backend sh -lc '\''. /usr/local/bin/load-runtime-env.sh && npm test'\'''
./scripts/local/market-price-monitor.sh --server
Regeln
- Immer die bestehenden Dev-Container über den Wrapper verwenden.
- Image-Imports für direkte Dev-Deploys nur über
sudo /usr/local/bin/skintogo/dev-docker-loadausführen. - Für nicht-interaktive SSH-/Codex-Kommandos bei
execin der Regel-Tsetzen. - Dev-Ad-hoc-Scripte nur in bestehenden Service-Containern ausführen.
- Datenbankabfragen auf Dev nur gezielt und möglichst read-only ausführen; korrigierende SQL-Updates vorher klar begründen.
- Secrets nicht in Logs, Commits oder Antworten ausgeben.
Backend-Ad-hoc-Scripte auf Dev:
ssh skintogo-dev 'sudo /usr/local/bin/skintogo/dev-compose exec -T backend sh -lc '\''. /usr/local/bin/load-runtime-env.sh && node --input-type=module -'\'''