 # Start Local (Lokales Setup)

 Kurzanleitung, um das Projekt lokal in wenigen Minuten zu starten.

 ## Voraussetzungen
 - Docker und Docker Compose (v2)
 - Java 21 (JDK)
 - Git

 ## Schnellstart

 ```bash
 # 1) Repository klonen
 git clone https://github.com/StefanMoCoAt/meldestelle.git
 cd meldestelle

 # 2) Runtime-Environment vorbereiten (Single Source of Truth)
 #   Kopiere die Vorlage und passe sie bei Bedarf an.
 cp -n .env.template config/env/.env 2>/dev/null || true
 #   Optionale lokale Geheimnisse/Overrides (gitignored):
 #   echo "POSTGRES_PASSWORD=meinlokalespasswort" >> config/env/.env.local

 # 3) (Optional) Compose-Files generieren
 #    (nur falls du die Generator-Pipeline nutzt)
 # DOCKER_SSOT_MODE=envless bash scripts/generate-compose-files.sh all development

 # 4) Infrastruktur starten (Postgres, Redis, Kafka, Keycloak, Monitoring, Gateway)
 docker compose -f docker-compose.yaml up -d

 # 5) Backend-Service starten (Beispiel: Results Service)
 ./gradlew :backend:services:results:results-service:bootRun
 # oder – falls zentral gewollt und unterstützt:
 # ./gradlew bootRun
 ```

 Sobald die Infrastruktur läuft, erreichst du unter anderem:
 - Gateway: http://localhost:8081
 - Keycloak: http://localhost:8180
 - Grafana: http://localhost:3000
 - Prometheus: http://localhost:9090

 ## Tests ausführen
 ```bash
 ./gradlew test
 # Spezifisches Modul
 ./gradlew :backend:services:results:results-service:test
 ```

 ## Troubleshooting
 - Dienste starten nicht? Ports belegt oder Logs prüfen:
   ```bash
   docker ps
   docker logs <container-name>
   ```
 - Infrastruktur neu starten:
   ```bash
   docker compose -f docker-compose.yaml down -v
   docker compose -f docker-compose.yaml up -d
   ```
 - Environment-Variablen: in `config/env/.env` und optional `config/env/.env.local`.

 ## Weiterführende Hinweise
 - Architektur: `docs/ARCHITECTURE.md`
 - ADRs: `docs/adr/`
 - C4-Diagramme: `docs/c4/`

 Stand: Dezember 2025
