Planetengenerierung

This commit is contained in:
2026-06-15 21:35:25 +02:00
parent 2623da3d39
commit 7a39007712
27 changed files with 2465 additions and 141 deletions
+21 -39
View File
@@ -1,48 +1,30 @@
// Externe Abhängigkeiten importieren
const express = require('express');
const { Pool } = require('pg'); // Das 'pg'-Modul ermöglicht die Kommunikation mit PostgreSQL
import express from 'express';
import pool from './db.js';
import healthRoutes from './routes/health.routes.js';
import internalRoutes from './routes/internal.routes.js';
import { initGameConfig } from './services/config.service.js';
import { initCronJobs } from './services/cron.service.js';
const app = express();
// Der interne Port im Container bleibt 3000 (wird via Docker Compose auf 3002 gemappt)
const port = 3000;
const port = process.env.PORT || 3000;
// ----------------------------------------------------------------------------
// PostgreSQL Verbindungs-Pool konfigurieren
// ----------------------------------------------------------------------------
// Wir ziehen uns die Zugangsdaten direkt aus den Umgebungsvariablen (process.env),
// die Docker Compose aus der .env-Datei in den Container injiziert hat.
const pool = new Pool({
host: process.env.DB_HOST, // Entspricht im Docker-Netzwerk dem Service 'sector-db'
port: process.env.DB_PORT, // Interner Port 5432
user: process.env.DB_USER, // sector_admin
password: process.env.DB_PASS, // Dein neues Sektor-Passwort
database: process.env.DB_NAME, // void_sector
});
app.use(express.json());
// ----------------------------------------------------------------------------
// Datenbank-Verbindungstest beim Serverstart
// ----------------------------------------------------------------------------
// Wir setzen eine Test-Query ab (SELECT NOW()), um zu prüfen, ob die DB bereit ist.
pool.query('SELECT NOW()', (err, res) => {
if (err) {
console.error('❌ Fehler bei der Verbindung zur Sektor-Datenbank:', err.stack);
} else {
console.log(`✅ Erfolgreich mit der Sektor-PostgreSQL-Datenbank (${process.env.DB_NAME}) verbunden!`);
}
});
// ----------------------------------------------------------------------------
// Express Routen & Server-Start
// ----------------------------------------------------------------------------
app.get('/', (req, res) => {
res.send('Void-Genesis Sektor-Backend läuft im Dev-Modus und ist mit der DB verbunden!');
});
app.get('/api/health', (req, res) => {
res.json({ status: 'ok' });
});
app.use('/api', healthRoutes);
app.use('/api/internal', internalRoutes);
app.listen(port, () => {
console.log(`🚀 Sektor-Backend gestartet auf Port ${port}`);
console.log(`Environment: ${process.env.NODE_ENV || 'development'}`);
});
async function startServer() {
await initGameConfig();
initCronJobs();
app.listen(port, () => {
console.log(`🚀 Sektor-Backend gestartet auf Port ${port}`);
console.log(`Environment: ${process.env.NODE_ENV || 'development'}`);
});
}
startServer();