# Lokales Entwicklungs-Setup für das Holzleitner-Backend. # Startbefehl: docker compose up -d # # Postgres-Daten landen im benannten Volume `postgres-data` und überleben # Container-Neustarts. # # Keycloak hat seit der Fahrer-Provisionierung EBENFALLS ein persistentes # Volume (`keycloak-data` → /opt/keycloak/data): per Sync angelegte Fahrer- # Konten (Username = Fahrernummer, temporäres Passwort) überleben damit # Neustarts. ACHTUNG: `--import-realm` importiert nur, wenn der Realm noch # NICHT existiert — nach dem ersten Start werden Änderungen an # `keycloak/import/realm-holzleitner.json` also NICHT mehr automatisch # übernommen. Realm bewusst neu importieren / frische Demo-Daten: # docker compose down -v && docker compose up -d (löscht ALLE Volumes) # oder gezielt nur Keycloak: # docker volume rm holzleitner-backend_keycloak-data (Container vorher stoppen) # Komplettes Reset: `docker compose down -v`. services: postgres: image: postgres:17-alpine container_name: holzleitner-postgres restart: unless-stopped environment: POSTGRES_DB: holzleitner POSTGRES_USER: holzleitner POSTGRES_PASSWORD: holzleitner_dev ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U holzleitner -d holzleitner"] interval: 5s timeout: 5s retries: 5 keycloak: image: quay.io/keycloak/keycloak:26.0 container_name: holzleitner-keycloak restart: unless-stopped command: ["start-dev", "--import-realm"] environment: # Bootstrap-Admin (Keycloak 26+ neue Env-Vars). # Admin-Console: http://localhost:8080/admin/ (admin / admin) KC_BOOTSTRAP_ADMIN_USERNAME: admin KC_BOOTSTRAP_ADMIN_PASSWORD: admin # Health-Endpoints für externe Checks aktivieren. KC_HEALTH_ENABLED: "true" # Hostname, den Keycloak ins `iss`-Claim und in die Discovery-URLs # schreibt. Per Default die LAN-IP (Android-Test über WLAN). Für den # USB-Tunnel-Modus (`adb reverse`) mit # KC_HOSTNAME=localhost docker compose up -d # überschreiben — dann muss auch das Backend mit # KEYCLOAK_ISSUER_URL=http://localhost:8080/realms/holzleitner laufen # (siehe tool/dev_usb.sh, das beides zusammen hochfährt). KC_HOSTNAME: "${KC_HOSTNAME:-192.168.0.138}" ports: - "8080:8080" volumes: # Persistente H2-DB: provisionierte Fahrer-Konten überleben Neustarts. - keycloak-data:/opt/keycloak/data # Realm-Import (nur beim ersten Start wirksam, s. Kopf-Kommentar). - ./keycloak/import:/opt/keycloak/data/import:ro volumes: postgres-data: keycloak-data: