meldestelle/docs/02_Guides/start-local.md

90 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 DesktopFirst mit optionalem DockerBackend.
## 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 JavaToolchain wird per Gradle automatisch heruntergeladen (`org.gradle.java.installations.auto-download=true`). Ein lokal installiertes JDK 25 wird dennoch empfohlen für IDERuns.
- Auf AppleSilicon (arm64) sind die DockerImages 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 WebApp (falls `--profile gui` gebaut/gestartet): http://localhost:4000
## DesktopApp starten (Compose Desktop)
Die DesktopApp ist der primäre EntwicklungsEntryPoint.
```bash
# 1) Abhängigkeiten bauen (optional; Gradle lädt automatisch beim ersten Run)
./gradlew :frontend:shells:meldestelle-desktop:build
# 2) DesktopApp starten
./gradlew :frontend:shells:meldestelle-desktop:run
```
Voraussetzung: Für Features, die BackendKonnektivität benötigen (z. B. Login, Stammdaten), muss das DockerBackend (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 <container-name>
```
- Infrastruktur neu starten:
```bash
docker compose down -v
docker compose --profile infra up -d
```
- EnvironmentVariablen: werden aus der `.env`Datei im RootVerzeichnis geladen.
- Gradle/Java Probleme? Stelle sicher, dass JDK 25 aktiv ist bzw. lasse die GradleToolchain 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 QuickStart (DesktopFirst): `README.md`
- ArchitekturKurzkonzept (OfflineFirst Desktop & Backend): `docs/01_Architecture/konzept-offline-first-desktop-backend-de.md`
- ADRs: `docs/01_Architecture/adr/`
- Aktuelle Reports: `docs/90_Reports/`