# Entwickler-Guide: Umgebungs-Setup Dieser Guide erklärt das tägliche Arbeiten mit den Dev/Staging/Prod-Umgebungen. ## Schnellstart ```bash # 1. Wechsle in das Projektverzeichnis cd /Users/benjaminadmin/Projekte/breakpilot-pwa # 2. Starte die Entwicklungsumgebung ./scripts/start.sh dev # 3. Prüfe den Status ./scripts/status.sh ``` ## Täglicher Workflow ### Morgens: Entwicklung starten ```bash # Auf develop-Branch wechseln git checkout develop # Neueste Änderungen holen (falls Remote konfiguriert) git pull origin develop # Umgebung starten ./scripts/start.sh dev ``` ### Während der Arbeit ```bash # Logs eines Services anzeigen docker compose logs -f backend # Service neustarten docker compose restart backend # Status prüfen ./scripts/status.sh ``` ### Änderungen committen ```bash # Änderungen anzeigen git status # Dateien hinzufügen git add . # Commit erstellen git commit -m "Feature: Beschreibung der Änderung" ``` ### Abends: Umgebung stoppen ```bash ./scripts/stop.sh dev ``` ## Umgebung wechseln ### Von Dev zu Staging ```bash # Stoppe Dev ./scripts/stop.sh dev # Starte Staging ./scripts/start.sh staging ``` ### Zurück zu Dev ```bash ./scripts/stop.sh staging ./scripts/start.sh dev ``` ## Code promoten ### Dev → Staging (nach erfolgreichem Test) ```bash # Stelle sicher, dass alle Änderungen committet sind git status # Promote zu Staging ./scripts/promote.sh dev-to-staging # Push zu Remote (falls konfiguriert) git push origin staging ``` ### Staging → Production (Release) ```bash # Nur nach vollständigem Test auf Staging! ./scripts/promote.sh staging-to-prod # Push zu Remote git push origin main ``` ## Nützliche Befehle ### Docker ```bash # Alle Container anzeigen docker compose ps # Logs folgen docker compose logs -f [service] # In Container einsteigen docker compose exec backend bash docker compose exec postgres psql -U breakpilot -d breakpilot_dev # Container neustarten docker compose restart [service] # Alle Container stoppen und entfernen docker compose down # Mit Volumes löschen (VORSICHT!) docker compose down -v ``` ### Git ```bash # Aktuellen Branch anzeigen git branch --show-current # Alle Branches anzeigen git branch -v # Änderungen zwischen Branches anzeigen git diff develop..staging ``` ### Datenbank ```bash # Direkt mit PostgreSQL verbinden (Dev) docker compose exec postgres psql -U breakpilot -d breakpilot_dev # Backup erstellen ./scripts/backup.sh # Backup wiederherstellen ./scripts/restore.sh backup-file.sql.gz ``` ## Häufige Probleme ### "Port already in use" Ein anderer Prozess oder Container verwendet den Port. ```bash # Laufende Container prüfen docker ps # Alte Container stoppen docker compose down # Prozess auf Port finden (z.B. 8000) lsof -i :8000 ``` ### Container startet nicht ```bash # Logs prüfen docker compose logs backend # Container neu bauen docker compose build backend docker compose up -d backend ``` ### Datenbank-Verbindungsfehler ```bash # Prüfen ob PostgreSQL läuft docker compose ps postgres # PostgreSQL-Logs prüfen docker compose logs postgres # Neustart docker compose restart postgres ``` ### Falsche Umgebung aktiv ```bash # Status prüfen ./scripts/status.sh # Auf richtige Umgebung wechseln ./scripts/env-switch.sh dev ``` ## Umgebungs-Dateien | Datei | Beschreibung | Im Git? | |-------|--------------|---------| | `.env` | Aktive Umgebung | Nein | | `.env.dev` | Development Werte | Ja | | `.env.staging` | Staging Werte | Ja | | `.env.prod` | Production Werte | **NEIN** | | `.env.example` | Template | Ja | ## Ports Übersicht ### Development | Service | Port | URL | |---------|------|-----| | Backend | 8000 | http://localhost:8000 | | Website | 3000 | http://localhost:3000 | | Consent Service | 8081 | http://localhost:8081 | | PostgreSQL | 5432 | localhost:5432 | | Mailpit UI | 8025 | http://localhost:8025 | | MinIO Console | 9001 | http://localhost:9001 | ### Staging | Service | Port | URL | |---------|------|-----| | Backend | 8001 | http://localhost:8001 | | PostgreSQL | 5433 | localhost:5433 | | Mailpit UI | 8026 | http://localhost:8026 | | MinIO Console | 9003 | http://localhost:9003 | ## Hilfe ```bash # Status und Übersicht ./scripts/status.sh # Script-Hilfe ./scripts/env-switch.sh --help ./scripts/promote.sh --help ``` ## Verwandte Dokumentation - [Architektur: Umgebungen](../architecture/environments.md) - [Secrets Management](../architecture/secrets-management.md) - [System-Architektur](../architecture/system-architecture.md)