Files
tactical-docs/install-notes/016-datenbank-healthcheck-ausgelagert.md
T
2026-06-14 06:53:12 +00:00

90 lines
1.8 KiB
Markdown

# 016 - Datenbank-Healthcheck ausgelagert
## Ziel
Der PostgreSQL-Healthcheck wurde aus Main.kt in eine eigene Datei Database.kt ausgelagert.
## Ergebnis
Der Status-Endpunkt /api/v1/status liefert weiterhin den Datenbankstatus und zusätzlich latencyMs.
Beispiel:
{"service":"ruvnox-tactical-server","status":"online","version":"0.1.0-SNAPSHOT","database":{"status":"online","host":"192.168.178.4","port":5432,"name":"ruvnox_tactical","latencyMs":99}}
## Neue Datei
src/main/kotlin/de/ruvnox/tactical/Database.kt
## Aufgaben von Database.kt
- Datenbankkonfiguration aus Environment lesen
- JDBC-Verbindung zentral bereitstellen
- Datenbank-Healthcheck über select 1 ausführen
- Latenz in Millisekunden messen
- Fehler sicher als offline behandeln
## Environment
Die Datenbankwerte kommen weiterhin aus:
/opt/ruvnox/tactical/config/server.env
Relevante Variablen:
DB_HOST
DB_PORT
DB_NAME
DB_USER
DB_PASSWORD
Diese Datei wird durch systemd geladen:
EnvironmentFile=/opt/ruvnox/tactical/config/server.env
## API-Verhalten
Bei erfolgreicher Verbindung:
database.status = online
database.latencyMs = gemessene Dauer
Bei Fehler:
database.status = offline
database.latencyMs = null
Der API-Endpunkt selbst bleibt erreichbar und gibt keine internen Exception-Details aus.
## Deployment
Deployment wurde über das bestehende Script durchgeführt:
/opt/ruvnox/tactical/scripts/deploy-server.sh
Ergebnis:
Deployment erfolgreich.
## Verifikation lokal
curl -fsS http://127.0.0.1:8080/api/v1/status
## Verifikation öffentlich
curl -fsS https://tactical.ruvnox.de/api/v1/status
## Git-Commit
tactical-server:
55fc27f Extract database health check
## Abschlussstand
- Database.kt erstellt
- Main.kt bereinigt
- Status-Endpunkt liefert latencyMs
- Deployment erfolgreich
- Code committed und gepusht