diff --git a/README.md b/README.md index c30ff727..0ff21449 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,83 @@ # Meldestelle -> Modulares System für Pferdesportveranstaltungen mit Domain-Driven Design, Kotlin Multiplatform und Microservices. +> Modulares System für Pferdesportveranstaltungen — gebaut mit Domain-Driven Design, Kotlin Multiplatform und Microservices. -[![CI Pipeline](https://github.com/StefanMoCoAt/meldestelle/workflows/CI%20-%20Main%20Pipeline/badge.svg)](https://github.com/StefanMoCoAt/meldestelle/actions) +[![CI/CD Pipeline](https://git.mo-code.at/mocode-software/meldestelle/actions/workflows/docker-publish.yaml/badge.svg)](https://git.mo-code.at/mocode-software/meldestelle/actions) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) --- -## 📚 Dokumentation: Die einzige Quelle der Wahrheit +## 📚 Dokumentation — Single Source of Truth -Die gesamte Projekt-Dokumentation – von der Architektur über die fachliche Domäne bis hin zu den Entwickler-Anleitungen – befindet sich im `/docs` Verzeichnis. +Die gesamte Projektdokumentation (Architektur, Fachdomäne, Entwickler-Anleitungen) befindet sich im `/docs`-Verzeichnis. -**Starte hier:** -### [**-> docs/README.md**](./docs/README.md) +**Starte hier:** [**→ docs/README.md**](./docs/README.md) + +| Bereich | Inhalt | +|-----------------------------------------------|---------------------------------------------| +| [01_Architecture](./docs/01_Architecture) | Master Roadmap, ADRs, C4-Modelle | +| [02_Guides](./docs/02_Guides) | Setup-Anleitungen, Entwickler-Guidelines | +| [03_Domain](./docs/03_Domain) | Fachlichkeit, Turnierregeln, Entities | +| [07_Infrastructure](./docs/07_Infrastructure) | Docker, Keycloak, CI/CD, Zora-Infrastruktur | --- -## 🚀 Quick Start +## 🏗️ Tech Stack -Diese Befehle starten die Kern-Infrastruktur und die Services. +| Schicht | Technologie | +|-----------------------|---------------------------------------------------| +| **Backend** | Kotlin, Spring Boot 3.x, Spring Cloud Gateway | +| **Frontend** | Kotlin Multiplatform (KMP), Compose Multiplatform | +| **Datenbank** | PostgreSQL + Exposed / JPA | +| **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 (Lokal) ```bash # 1. Umgebungsvariablen vorbereiten (nur beim ersten Mal) cp .env.example .env -# 2. Gesamtes System mit Docker Compose starten -docker compose up -d +# 2. Infrastruktur starten (Postgres, Keycloak, Valkey, Consul, Zipkin) +docker compose -f docker-compose.yaml -f dc-infra.yaml up -d + +# 3. Backend-Services starten (Gateway, Ping-Service) +docker compose -f docker-compose.yaml -f dc-backend.yaml up -d + +# 4. Ops-Stack starten (Prometheus, Grafana) +docker compose -f docker-compose.yaml -f dc-ops.yaml up -d + +# 5. Optional: Web-App starten +docker compose -f docker-compose.yaml -f dc-gui.yaml up -d ``` -Für detailliertere Anleitungen, wie z.B. das Starten einzelner Services oder das Frontend-Setup, siehe die **[-> Lokale Setup-Anleitung](./docs/02_Onboarding/start-local.md)**. +> ⚠️ **Reihenfolge beachten:** Infra muss `healthy` sein, bevor Backend gestartet wird. +> Keycloak benötigt ~60–90 Sekunden zum Hochfahren. + +### 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 | --- -## 🤝 Contributing +## 🤝 Beitragen -Beiträge sind willkommen. Bitte beachte unseren [**→ Branch- und PR-Workflow**](./docs/02_Onboarding/branchschutz-und-pr-workflow.md). +Beiträge sind willkommen. Bitte lies zunächst die Entwickler-Guides unter [`docs/02_Guides`](./docs/02_Guides). + +--- ## 📜 Lizenz Dieses Projekt steht unter der [MIT License](LICENSE). - - ---- -**Test-Check vom Arbeitsplatz am Di 03 März 2026 18:50 CET** - ----