feat(frontend): Struktur und Kommentare verfeinert, Mail-Service-Konfiguration erweitert

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-15 11:49:26 +02:00
parent 8c804832d8
commit d0b756694b
13 changed files with 682 additions and 284 deletions
@@ -0,0 +1,39 @@
# 🧹 Session Journal - 15. April 2026 (Live-Gang Vorbereitung)
## 🏗️ Status-Check (Lead Architect)
- **Phase 13 (Export & Mail-Service):** Infrastruktur und Deployment-Vorbereitungen für den Live-Gang des Online-Nennens
sind abgeschlossen.
- **Ziel erreicht:** Das System kann nun auf dem Produktions-Server deployt werden.
## 👷 Durchgeführte Arbeiten (DevOps & Frontend)
1. **Infrastruktur (Docker):**
- Dockerfile für `mail-service` erstellt.
- `dc-backend.yaml` um den `mail-service` erweitert (inkl. Postgres-Link, Consul-Discovery und SMTP-Konfiguration).
- `application.yaml` im `mail-service` für dynamische Konfiguration via Environment-Variablen fit gemacht.
2. **Frontend (Konfigurierbarkeit):**
- Common `PlatformConfig` erweitert um `resolveMailServiceUrl`.
- Implementierung für Wasm, JS und JVM hinzugefügt, um Backend-URLs zur Laufzeit steuern zu können (Wasm: via global
JS variables).
- `NennungRemoteRepository` nutzt nun die dynamisch aufgelöste Mail-Service-URL.
- Fehlende Projekt-Abhängigkeit (`frontend.core.network`) im `nennung-feature` ergänzt.
3. **Sicherheit:**
- CORS im `MailController` auf Ziel-Domains eingeschränkt (`nennung.mo-code.at`).
- Bean-Validierung für `NennungRequest` (Email-Format, Pflichtfelder) implementiert.
4. **Dokumentation:**
- `docs/05_Deployment/2026-04-15_Online-Nennung-Deployment.md` erstellt.
## 🧐 QA-Status & Bekannte Themen
- [x] **Infrastruktur-Check:** Docker-Stack ist bereit für `up -d mail-service`.
- [x] **Frontend-URL:** Die harte Verdrahtung auf `localhost:8085` wurde durch eine flexible Runtime-Konfiguration
ersetzt.
- [ ] **Mail-Versand:** Der tatsächliche Versand muss in der Ziel-Umgebung mit echten SMTP-Credentials validiert werden.
## 🧹 Curator's Note
- Die ROADMAP Phase 13 wurde in der Vormittags-Session bereits aktualisiert.
- Das "Biest" ist nun technologisch "Live-ready". 🚀
**Abschluss:** Online-Nennung bereit für das Neumarkt-Turnier (April 2026). 🐎
@@ -0,0 +1,70 @@
# 🚀 Deployment Guide - Online-Nennung (Neumarkt 2026)
Dieser Guide beschreibt den Prozess zum Deployment des "Biest" Online-Nennung Stacks auf den Produktions-Server.
## 1. Voraussetzungen
- Docker & Docker Compose installiert.
- Zugriff auf den OEPS SMTP Server oder eine Alternative.
- Domain (z.B. `nennung.mo-code.at`) zeigt auf den Server.
## 2. Infrastruktur (Backend)
Der Stack wird über `dc-backend.yaml` gestartet.
### Umgebungsvariablen (`.env` Datei am Server)
Folgende Variablen müssen gesetzt sein:
```env
# Datenbank
POSTGRES_USER=pg-user
POSTGRES_PASSWORD=dein-geheimes-passwort
# SMTP (für Bestätigungs-Mails)
MAIL_SMTP_HOST=smtp.mo-code.at
MAIL_SMTP_PORT=587
MAIL_SMTP_USER=online-nennen@mo-code.at
MAIL_SMTP_PASSWORD=dein-smtp-passwort
```
### Starten
```bash
docker-compose -f dc-backend.yaml up -d mail-service postgres consul
```
## 3. Frontend (Wasm Web App)
Die Web-App kommuniziert direkt mit dem `mail-service`.
### Build
```bash
./gradlew :frontend:shells:meldestelle-web:wasmJsBrowserDistribution
```
Die Artefakte liegen in `frontend/shells/meldestelle-web/build/dist/wasmJs/productionExecutable/`.
### Konfiguration (Laufzeit)
In der `index.html` oder über ein vorgeschaltetes Nginx können globale Variablen gesetzt werden, um die Backend-URLs zu
steuern:
```html
<script>
window.MAIL_SERVICE_URL = "https://nennung.mo-code.at/api/mail";
window.API_BASE_URL = "https://nennung.mo-code.at/api";
</script>
```
## 4. Sicherheit & Härtung
- **CORS:** Der `MailController` ist aktuell für `localhost:8080` und `nennung.mo-code.at` freigeschaltet.
- **Reverse Proxy:** Es wird empfohlen, einen Nginx oder Traefik mit SSL (Let's Encrypt) vor den Stack zu schalten.
- **Mail-Absender:** Die Absender-Adresse ist im `MailController` hartcodiert auf `online-nennen@mo-code.at`. Dies
sollte bei Bedarf angepasst werden.
---
*Dokumentiert durch den Lead Architect am 15. April 2026.*