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

1.8 KiB

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