4.0 KiB
4.0 KiB
Umgebungsvariablen Setup - Zusammenfassung
Was wurde implementiert
Das Meldestelle-Projekt verfügt über eine vollständig zentralisierte Umgebungsvariablen-Konfiguration im config/ Verzeichnis.
1. Zentrale Konfigurationsstruktur
config/.env.template- Master-Vorlage mit allen verfügbaren Umgebungsvariablenconfig/.env.dev- Entwicklungsumgebung-Konfigurationconfig/.env.prod- Produktionsumgebung-Konfigurationconfig/.env.staging- Staging-Umgebung-Konfigurationconfig/.env.test- Testumgebung-Konfigurationconfig/README.md- Umfassende Dokumentation der Konfigurationsverwaltung
2. Aktualisierte Dateien
docker-compose.yml- Alle Services verwenden Umgebungsvariablen mit Fallback-Werten- Symlink
.env- Verweist auf die aktuelle Umgebungskonfiguration
3. Konfigurierte Services
Die folgenden Services sind vollständig konfiguriert:
- PostgreSQL - Datenbank mit konfigurierbaren Zugangsdaten
- Redis - Event Store und Cache mit separaten Konfigurationen
- Keycloak - Authentifizierung mit konfigurierbaren Admin-Zugangsdaten
- Kafka/Zookeeper - Messaging-System mit konfigurierbaren Parametern
- Grafana - Monitoring mit konfigurierbaren Admin-Zugangsdaten
- Prometheus - Metriken-Sammlung
- Zipkin - Distributed Tracing
4. Umgebungsvariablen-Kategorien
- Anwendungskonfiguration (API_HOST, API_PORT, etc.)
- Datenbank-Konfiguration (DB_HOST, DB_PORT, DB_USER, etc.)
- Redis-Konfiguration (Event Store und Cache)
- Sicherheitskonfiguration (JWT_SECRET, API_KEY, etc.)
- Keycloak-Konfiguration (Admin-Zugangsdaten, DB-Verbindung)
- Service Discovery (Consul-Konfiguration)
- Messaging (Kafka/Zookeeper-Konfiguration)
- Monitoring (Grafana, Prometheus-Konfiguration)
- Logging-Konfiguration (Log-Level, Request/Response-Logging)
- CORS und Rate Limiting
Verwendung
Schnellstart
-
Umgebung wählen:
# Für Entwicklung ln -sf config/.env.dev .env # Für Produktion ln -sf config/.env.prod .env # Für Tests ln -sf config/.env.test .env -
Services starten:
docker compose up -d -
Services überprüfen:
docker compose ps
Anpassungen
- Kopieren und bearbeiten Sie die gewünschte
.env.*Datei aus demconfig/Verzeichnis - Verwenden Sie verschiedene Ports für mehrere Entwickler (siehe
.env.testfür Beispiel) - Ändern Sie alle
CHANGE_MEWerte in Produktionsumgebungen
Dokumentation
Vollständige Dokumentation finden Sie in:
config/README.md- Zentrale Konfigurationsdokumentation
Sicherheitshinweise
⚠️ Wichtig:
- Niemals Produktionsgeheimnisse in die Versionskontrolle einbinden
- JWT_SECRET in der Produktion ändern
- Starke Passwörter für Produktionsumgebungen verwenden
- API-Schlüssel regelmäßig rotieren
Fehlerbehebung
Bei Problemen:
- Überprüfen Sie die aktive Umgebungskonfiguration:
ls -la .env - Validieren Sie die Docker-Compose-Konfiguration:
docker compose config - Überprüfen Sie die Service-Logs:
docker compose logs -f - Konsultieren Sie
config/README.mdfür detaillierte Konfigurationsrichtlinien
Nächste Schritte
- Die zentrale Konfiguration ist bereits vollständig implementiert
- Wählen Sie die gewünschte Umgebung mit den Symlink-Befehlen oben
- Passen Sie Konfigurationswerte in den
config/.env.*Dateien nach Bedarf an - Für neue Umgebungen verwenden Sie
config/.env.templateals Ausgangspunkt
Smoke-Tests (Prometheus & Zipkin)
Nach dem Start der Infrastruktur können einfache Smoke-Tests ausgeführt werden:
# Zipkin: erzeugt einen Ping über das Gateway und prüft, ob Traces ankommen
bash scripts/smoke/zipkin_smoke.sh
# Prometheus: prüft, ob Gateway und Ping-Service Metriken exponieren
bash scripts/smoke/prometheus_smoke.sh
Variablen:
- GATEWAY_URL (Default: http://localhost:8081)
- ZIPKIN_URL (Default: http://localhost:9411)
- PING_SERVICE_URL (Default: http://localhost:8082)