# 014 - PostgreSQL-Anbindung und server.env ## Ziel Der RUVNOX Tactical Server wurde an die externe PostgreSQL-Instanz auf CT101 angebunden. ## Umgebung - Tactical Server Container: RUVNOX-TACTICAL - Tactical Server IP: 192.168.178.105 - PostgreSQL Container: CT101 / PostgreSQL - PostgreSQL IP: 192.168.178.4 - PostgreSQL Version: 17.10 - Datenbank: ruvnox_tactical - Datenbank-User: ruvnox_tactical ## PostgreSQL-Netzwerkfreigabe Auf CT101 wurde in der PostgreSQL pg_hba.conf der Tactical-Container explizit freigegeben. Datei: /etc/postgresql/17/main/pg_hba.conf Eintrag: host ruvnox_tactical ruvnox_tactical 192.168.178.105/32 scram-sha-256 Danach wurde PostgreSQL neu geladen: systemctl reload postgresql ## Server-Konfiguration Die echte Runtime-Konfiguration liegt außerhalb des Git-Repositories: /opt/ruvnox/tactical/config/server.env Diese Datei enthält die produktiven Umgebungsvariablen: RUVNOX_ENV=development SERVER_HOST=0.0.0.0 SERVER_PORT=8080 DB_HOST=192.168.178.4 DB_PORT=5432 DB_NAME=ruvnox_tactical DB_USER=ruvnox_tactical DB_PASSWORD= Die Datei darf nicht ins Git übernommen werden. Rechte: Owner: ruvnox:ruvnox Modus: 600 ## Beispiel-Konfiguration Im tactical-server Repository wurde nur die Beispiel-Datei versioniert: .env.example Diese enthält Platzhalterwerte und keine echten Secrets. ## systemd EnvironmentFile Der systemd-Dienst lädt die echte Konfigurationsdatei über: EnvironmentFile=/opt/ruvnox/tactical/config/server.env Zusätzlich wurde JAVA_OPTS korrekt gequotet: Environment="JAVA_OPTS=-Xms256m -Xmx1024m" ## API-Status Der Endpunkt /api/v1/status prüft jetzt zusätzlich die PostgreSQL-Verbindung. Beispielantwort: {"service":"ruvnox-tactical-server","status":"online","version":"0.1.0-SNAPSHOT","database":{"status":"online","host":"192.168.178.4","port":5432,"name":"ruvnox_tactical"}} ## 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-Commits tactical-server: 03b2df3 Add PostgreSQL status check tactical-deploy: 4f57623 Load server environment file in systemd service