# 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