diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md new file mode 100644 index 0000000..f583545 --- /dev/null +++ b/PROJECT_CONTEXT.md @@ -0,0 +1,49 @@ +Projekt-Zusammenfassung: Nexus Control Panel (Modul: KEA) +1. Projekt-Zweck & Ziel +Nexus ist ein zentrales, webbasiertes Administrations-Interface für die Verwaltung einer dynamischen IT-Infrastruktur. Das primäre Ziel ist die Abstraktion und Steuerung von Netzwerkdiensten, beginnend mit dem ISC KEA DHCP-Server. + +2. Kernmodul: KEA DHCP Management +Dieses Modul dient der Verwaltung von Netzwerkgeräten und deren IP-Zuweisungen. + +Datenquelle: Das Interface kommuniziert direkt mit einer PostgreSQL-Datenbank (db_nexus), in der KEA seine Leases und Hosts speichert. + +Funktionsumfang: + +Geräte-Inventar: Auflistung aller bekannten Geräte (Hostnames, MAC-Adressen). + +IP-Management: Verwaltung von statischen Reservierungen und Überwachung von dynamischen Leases. + +Metadaten: Speicherung zusätzlicher Informationen pro Gerät (z.B. Standort, Gerätetyp, Verantwortlicher), die über die Standard-KEA-Schema-Felder hinausgehen können. + +3. Technische Architektur (VSC Kontext) +Damit der Code Assist die Pfade korrekt generiert, ist das Standard-Server-Layout entscheidend: + +Domains: * nexus.int.kusche.berlin (Produktion) + +staging.nexus.int.kusche.berlin (Testumgebung) + +Dateistruktur: + +/public/: Der einzige öffentlich erreichbare Ordner (Document Root). Enthält index.php und Assets. + +/api/: Backend-Logik und API-Endpunkte. + +/src/ und /tools/: PHP-Klassen für die KEA-Datenbankinteraktion. + +/config/: Datenbank-Zugangsdaten und Umgebungsvariablen. Die Subfolder staging/prod spielen keine technische Rolle und müssen so nicht in den Code integriert werden, denn sie werden so auch nicht synchronisiert. Beim Synchronisieren werden die beinhalteten Dateien automatisch in das Config Verzeichnis kopiert, als ob sie direkt drin liegen. + + +/partials/landing/: Enthält die echten Landingpages, also den kompletten Aufbau der Seite + +/partials/structure/: Enthält alle wiederverwendbaren Seiteninformationen, wie z.B. Header, Footer, Menue + +/debug/: Hier sollen custom Log-Dateien gespeichert werden. Ist dafür gedacht, dass wenn mal ein custom debug-Tool existiert, ein zentraler Ort für die Debug-Dateien existiert. + +Backend: PHP 8.2 (FPM). + +Frontend: HTML5, CSS (evtl. Tailwind/Bootstrap), JavaScript (Vanilla oder leichtgewichtig). + +4. Sicherheits-Vorgaben für den Assistenten +IP-Sperre: Der Zugriff ist strikt auf das Heimnetz (192.168.178.0/24) begrenzt (via Nginx). + +Pfadtrennung: Code-Generierung muss strikt zwischen dem Logik-Verzeichnis (außerhalb des Roots) und dem Web-Verzeichnis unterscheiden. \ No newline at end of file diff --git a/config/prod/db.php b/config/prod/db.php index f8dbf56..a30fc15 100755 --- a/config/prod/db.php +++ b/config/prod/db.php @@ -25,7 +25,7 @@ $pgsql = [ 'driver' => 'pgsql', 'host' => 'localhost', 'port' => 5432, - 'dbname' => 'mydb', + 'dbname' => 'nexus_live', // optional: schema/search_path (commonly "public") 'schema' => 'public', diff --git a/config/staging/db.php b/config/staging/db.php index 80c98f1..63d56a4 100755 --- a/config/staging/db.php +++ b/config/staging/db.php @@ -24,8 +24,8 @@ $driver = 'pgsql'; $pgsql = [ 'driver' => 'pgsql', 'host' => 'localhost', - 'port' => 5432, - 'dbname' => 'mydb', + 'port' => 5433, + 'dbname' => 'nexus_staging', // optional: schema/search_path (commonly "public") 'schema' => 'public',