--- type: Guide status: ACTIVE owner: DevOps Engineer tags: [setup, local, docker, gradle] --- # Start Local (Lokales Setup) Kurzanleitung, um das Projekt lokal in wenigen Minuten zu starten – Desktop‑First mit optionalem Docker‑Backend. ## Voraussetzungen (exakte Versionen) - Git ≥ 2.40 - JDK 25 (Temurin/Eclipse Adoptium empfohlen) – Projekttoolchain lädt bei Bedarf automatisch - Gradle Wrapper 9.4.0 (wird über `./gradlew` automatisch verwendet) - Docker Engine ≥ 24, Docker Compose v2 ≥ 2.24 Hinweise: - Die Java‑Toolchain wird per Gradle automatisch heruntergeladen (`org.gradle.java.installations.auto-download=true`). Ein lokal installiertes JDK 25 wird dennoch empfohlen für IDE‑Runs. - Auf Apple‑Silicon (arm64) sind die Docker‑Images optimiert; Keycloak nutzt `start --optimized`. ## Schnellstart (nur Backend in Docker) ```bash # 1) Repository klonen git clone https://github.com/StefanMoCoAt/meldestelle.git cd meldestelle # 2) Runtime-Environment vorbereiten # Kopiere die Vorlage. cp .env.example .env # 3) Infrastruktur starten (Postgres, Valkey, Keycloak, Tracing, Service Discovery) docker compose --profile infra up -d # 4) Backend starten (Gateway + Ping Service) docker compose --profile backend up -d ``` Sobald die Infrastruktur läuft, erreichst du unter anderem: - Gateway (API): http://localhost:8081 - Keycloak (IAM): http://localhost:8180 - Zipkin (Tracing): http://localhost:9411 - Consul (Service Discovery): http://localhost:8500 - Optional Web‑App (falls `--profile gui` gebaut/gestartet): http://localhost:4000 ## Desktop‑App starten (Compose Desktop) Die Desktop‑App ist der primäre Entwicklungs‑Entry‑Point. ```bash # 1) Abhängigkeiten bauen (optional; Gradle lädt automatisch beim ersten Run) ./gradlew :frontend:shells:meldestelle-desktop:build # 2) Desktop‑App starten ./gradlew :frontend:shells:meldestelle-desktop:run ``` Voraussetzung: Für Features, die Backend‑Konnektivität benötigen (z. B. Login, Stammdaten), muss das Docker‑Backend (infra + backend) laufen. Für rein lokale/offline Flows kann die App auch ohne Docker gestartet werden. ## Tests ausführen ```bash # Führt alle Tests aus ./gradlew test # Spezifisches Backend-Modul testen ./gradlew :backend:services:ping:ping-service:test ``` ## Troubleshooting - Dienste starten nicht? Ports belegt oder Logs prüfen: ```bash docker ps docker logs ``` - Infrastruktur neu starten: ```bash docker compose down -v docker compose --profile infra up -d ``` - Environment‑Variablen: werden aus der `.env`‑Datei im Root‑Verzeichnis geladen. - Gradle/Java Probleme? Stelle sicher, dass JDK 25 aktiv ist bzw. lasse die Gradle‑Toolchain das passende JDK laden. - ARM64 (Apple Silicon): Falls Images nicht starten, lösche alte Images und starte neu: `docker compose down -v && docker system prune -af && docker compose --profile infra up -d`. ## Weiterführende Hinweise - README Quick‑Start (Desktop‑First): `README.md` - Architektur‑Kurzkonzept (Offline‑First Desktop & Backend): `docs/01_Architecture/konzept-offline-first-desktop-backend-de.md` - ADRs: `docs/01_Architecture/adr/` - Aktuelle Reports: `docs/90_Reports/`