Zum Hauptinhalt springen

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-load ausführen.
  • Für nicht-interaktive SSH-/Codex-Kommandos bei exec in der Regel -T setzen.
  • 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 -'\'''