stefan 162e2ef414
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m44s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 4m12s
### fix: 30 verbessere Fehlertransparenz und Debug-Logs
- **OnlineNennungFormular:** Hinweis auf Browser-Konsole zu Fehlermeldungen hinzugefügt.
- **MailController:** Zusätzliche Debug-Logs für SMTP-Flows (Sendeversuch und Fehlerbehandlung).
- **WebMainScreen:** Versionsmarker auf `v2026-04-23.30 - COMPILE FIX` aktualisiert.
2026-04-23 16:02:11 +02:00
2026-04-22 23:17:19 +02:00
2026-04-22 23:17:19 +02:00
2025-04-17 13:19:13 +02:00

Meldestelle

DesktopFirst Meldestelle: Offlinefähige ComposeDesktopApp mit optionalem BackendStack. Domänengetrieben (DDD), Kotlin Multiplatform.

CI/CD Pipeline License: MIT


📚 Dokumentation — Single Source of Truth

Die gesamte Projektdokumentation (Architektur, Fachdomäne, Entwickler-Anleitungen) befindet sich im /docs-Verzeichnis.

Starte hier: → docs/README.md

Bereich Inhalt
01_Architecture Master Roadmap, ADRs, C4Modelle, DesktopKonzept
02_Guides Setup-Anleitungen, Entwickler-Guidelines
03_Domain Fachlichkeit, Turnierregeln, Entities
07_Infrastructure Docker, Keycloak, CI/CD, Zora-Infrastruktur

Wesentliche Architektur-Referenz: OfflineFirst Desktop & Backend (Kurzkonzept)


🖥️ Primärer Fokus: DesktopApp

  • Compose Multiplatform (JVM Desktop) als primäre Zielplattform
  • OfflineFirst: Lokale SQLDelightDB, Synchronisation optional
  • MultiTenantBackend optional für Sync/Verwaltung (SchemaperTenant, vgl. ADR0021)

🏗️ Tech Stack (aktueller Stand)

Schicht Technologie
Frontend (primär) Kotlin Multiplatform (KMP), Compose Multiplatform
Backend Kotlin (Ktor/Spring Boot), Spring Cloud Gateway
Datenbank SQLDelight (lokal), PostgreSQL (Backend)
Auth Keycloak (OAuth2 / OIDC)
Cache Valkey
Service Discovery Consul
Tracing Zipkin
CI/CD Gitea Actions + Gitea Registry
Infrastruktur Proxmox VE, Docker Compose, Pangolin Tunnel

🚀 Quick Start (lokale Entwicklung)

Empfohlen: Starte die DesktopApp direkt aus dem Repo. Der BackendStack ist optional und wird nur für Sync/Integration benötigt.

A) DesktopApp starten (ohne Backend)

Voraussetzungen: JDK 21+, aktuelle Gradle Wrapper verwendet.

# DesktopShell ausführen (Compose Desktop)
./gradlew :frontend:shells:meldestelle-desktop:run

Hinweise:

  • Beim ersten Start wird die lokale Datenbank initialisiert (OfflineFirst).
  • Architektur-Referenz: docs/06_Frontend/MVVM_UDF_Pattern.md (UDF/MVVM für ViewModels)

B) Optional: BackendStack per Docker starten

# 1. Umgebungsvariablen (nur beim ersten Mal)
cp .env.example .env || true

# 2. Infrastruktur (Postgres, Keycloak, Valkey, Consul, Zipkin)
docker compose -f docker-compose.yaml -f dc-infra.yaml up -d

# 3. BackendServices (Gateway, Masterdata, Ping, …)
docker compose -f docker-compose.yaml -f dc-backend.yaml up -d

# 4. OpsStack (Prometheus, Grafana)
docker compose -f docker-compose.yaml -f dc-ops.yaml up -d

# 5. Optional: WebShell
docker compose -f docker-compose.yaml -f dc-gui.yaml up -d

⚠️ Reihenfolge beachten: Infra muss healthy sein, bevor Backend gestartet wird. Keycloak benötigt ~6090 Sekunden.


🧭 Legacy (V1) Hinweise

  • Ältere V1Abschnitte/Anleitungen (WebFirst/MicroservicesOnly) gelten als DEPRECATED.
  • Verwende für lokale Entwicklung primär die DesktopApp (siehe Quick Start). DockerStacks sind optional für Integration/Sync.
  • In der Doku sind V1Seiten entsprechend markiert oder werden sukzessive bereinigt (siehe Roadmaps Sprint C4).

Wichtige lokale Ports

Service URL
API-Gateway http://localhost:8081
Keycloak Admin http://localhost:8180
Consul UI http://localhost:8500
Grafana http://localhost:3000
Zipkin http://localhost:9411

🤝 Beitragen

Beiträge sind willkommen. Bitte lies zunächst die Entwickler-Guides unter docs/02_Guides.


📜 Lizenz

Dieses Projekt steht unter der MIT License.

S
Description
No description provided
Readme MIT 95 MiB
Languages
Kotlin 93.9%
Dockerfile 3.2%
HTML 1.3%
Shell 0.8%
Python 0.5%
Other 0.3%