Erster - Push für Zora
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# SSoT Konfigurations-Masterplan für Zora (ARM64)
|
||||
|
||||
## 1. System-Umgebung (Infrastruktur)
|
||||
| Parameter | Wert | Erklärung |
|
||||
|:-------------------|:--------------|:-------------------------------------------------|
|
||||
| **Architektur** | `linux/arm64` | Native Architektur von Zora (Host). |
|
||||
| **Host-IP (Zora)** | `10.0.6.1` | Gateway für alle Container (Bridge `incusbr0`). |
|
||||
| **Projekt-IP** | `10.0.6.50` | Feste IP für den Docker-Host `prod-meldestelle`. |
|
||||
| **DNS-Server** | `10.0.6.1` | Zora übernimmt die Namensauflösung. |
|
||||
|
||||
## 2. Mail-Relay (SSoT Identity)
|
||||
Diese Daten müssen in der Spring Boot `application.yml` oder `.env` abgeglichen werden.
|
||||
* **SMTP-Host:** `10.0.6.1` (Zora Host Relay)
|
||||
* **SMTP-Port:** `25` (Passwortloser interner Zugriff via `mynetworks`)
|
||||
* **Absender:** `zora@mo-code.at` (Verifizierte World4You Identität)
|
||||
|
||||
## 3. Docker-Image Checkliste (ARM64 Kompatibilität)
|
||||
Bitte prüfe in deinen `docker-compose.yaml` Dateien, ob diese Images genutzt werden (alle unterstützen offiziell ARM64):
|
||||
|
||||
| Dienst | Empfohlenes Image | Status |
|
||||
|:---------------|:---------------------------------|:-----------------------------------------------|
|
||||
| **Datenbank** | `postgres:15-alpine` | ARM64 Support: Ja |
|
||||
| **Cache** | `valkey/valkey:8-alpine` | ARM64 Support: Ja (Besserer Support als Redis) |
|
||||
| **Identity** | `quay.io/keycloak/keycloak:24.0` | ARM64 Support: Ja (Offiziell) |
|
||||
| **Monitoring** | `prom/prometheus:latest` | ARM64 Support: Ja |
|
||||
| **Dashboards** | `grafana/grafana:latest` | ARM64 Support: Ja |
|
||||
|
||||
## 4. Backend & Gateway (Spring Boot)
|
||||
Da du diese selbst baust, ist die Dockerfile-Konfiguration entscheidend:
|
||||
|
||||
* **Base Image:** Nutze `eclipse-temurin:17-jre-alpine` oder `21-jre-alpine`. Diese sind für ARM64 optimiert.
|
||||
* **Build-Prozess:** Dein Gitea-Runner auf Zora baut automatisch für ARM64, da er auf der gleichen Hardware läuft.
|
||||
|
||||
## 5. Keycloak SSoT Integration
|
||||
Wichtige Endpunkte für deine Microservices in der IDEA:
|
||||
* **External Issuer:** `https://auth.mo-code.at/realms/mocode-realm`
|
||||
* **Internal Issuer:** `http://infra-keycloak:8080/realms/mocode-realm` (Für die Kommunikation innerhalb des Docker-Netzwerks)
|
||||
* **Client-ID:** `meldestelle-client`
|
||||
|
||||
## 6. Cloudflare Tunnel Routing
|
||||
Stelle sicher, dass deine Ingress-Rules auf die IP der Meldestelle zeigen:
|
||||
* `api.mo-code.at` -> `http://10.0.6.50:8080` (Gateway)
|
||||
* `auth.mo-code.at` -> `http://10.0.6.50:8180` (Keycloak)
|
||||
* `git.mo-code.at` -> `http://10.0.6.100:3000` (Gitea LXC - bereits aktiv)
|
||||
@@ -0,0 +1,45 @@
|
||||
# Dokumentation: Zentrales Mail-Relay (SSoT) auf Zora
|
||||
|
||||
## 1. Identität & Rollenverteilung
|
||||
Das System nutzt das **Single Source of Truth (SSoT)** Prinzip für den gesamten E-Mail-Verkehr. Anstatt dass jeder Dienst (Gitea, Keycloak, Spring Boot) eigene Zugangsdaten für World4You speichert, übernimmt **Zora** die zentrale Verwaltung.
|
||||
|
||||
| Parameter | Wert | Funktion |
|
||||
|:-------------------|:-------------------------|:-------------------------------------------------|
|
||||
| **Zentraler Host** | `zora.mo-code.at` | Primärer Mail-Transfer-Agent (MTA). |
|
||||
| **Gateway IP** | `10.0.6.1` | Interne Erreichbarkeit für alle Container/VMs. |
|
||||
| **Relay Host** | `smtp.world4you.com:587` | Externer Provider für den tatsächlichen Versand. |
|
||||
| **SSoT Account** | `zora@mo-code.at` | Die verifizierte Absender-Identität. |
|
||||
|
||||
---
|
||||
|
||||
## 2. Technische Umsetzung (Der "Postbote")
|
||||
Wir haben Postfix als **Satellitensystem** konfiguriert. Er nimmt Briefe im internen Netzwerk entgegen und bringt sie sicher zum Provider.
|
||||
|
||||
* **Sicherheit:** Postfix lauscht auf Port 25, erlaubt den Versand aber **nur** für Anfragen aus dem internen Netz `10.0.0.0/8` (Incus/Docker).
|
||||
* **Authentifizierung:** Nur Zora kennt das Passwort für den World4You-Account (gespeichert in `sasl_passwd`).
|
||||
* **Umschreibung (Canonical Mapping):** Postfix korrigiert automatisch Absender wie `root@zora` oder `grandmo@zora` zu `zora@mo-code.at`, damit der Provider die Mails nicht ablehnt.
|
||||
* **Verschlüsselung:** Die Verbindung zu World4You ist via TLS (STARTTLS) abgesichert.
|
||||
|
||||
---
|
||||
|
||||
## 3. Vorstellung: Der Benachrichtigungs-Weg
|
||||
Unsere Vision für den "Empire-Workflow" sieht wie folgt aus:
|
||||
|
||||
### Phase A: Das Ereignis (Trigger)
|
||||
Ein Dienst stellt einen Zustand fest, der gemeldet werden muss.
|
||||
* **Gitea:** Ein neuer Pull Request wurde erstellt.
|
||||
* **Prometheus/Alertmanager:** Die Festplatte von Zora ist zu 90% voll.
|
||||
* **Spring Boot:** Ein User hat sein Passwort für die "Meldestelle" vergessen.
|
||||
|
||||
### Phase B: Der interne Transport
|
||||
Der Dienst verbindet sich ohne Passwort (da er sich im vertrauenswürdigen Netz befindet) mit:
|
||||
`SMTP_HOST: 10.0.6.1` | `SMTP_PORT: 25`
|
||||
Dies minimiert das Risiko: Keine Passwörter in `.env`-Dateien von Applikationen.
|
||||
|
||||
### Phase C: Die externe Zustellung
|
||||
Zora nimmt die Mail an, prüft sie, fügt ggf. die korrekte Absenderadresse hinzu und reicht sie an World4You weiter. Von dort landet sie in deinem Gmail-Postfach.
|
||||
|
||||
---
|
||||
|
||||
## 4. Status Quo (Erfolgskontrolle)
|
||||
Dass dieser Weg bereits perfekt funktioniert, wurde durch die Gitea Test-Email am **10.02.2026 um 00:56 Uhr** bewiesen. Die Mail kam sauber signiert und verschlüsselt an.
|
||||
Reference in New Issue
Block a user