Files
nexus/PROJECT_CONTEXT.md

3.0 KiB

Projekt-Zusammenfassung: Nexus Control Panel

  1. Projekt-Zweck & Ziel Nexus ist ein zentrales, webbasiertes Admin-Interface zur Steuerung einer dynamischen IT-Infrastruktur. Module kapseln fachliche Funktionen (z.B. KEA DHCP, Pi Control).

  2. Aktive Module (Kurzüberblick)

  • KEA DHCP: Verwaltung von Hosts/Leases, Statische Reservierungen, Metadaten.
  • Pi Control: Verwaltung von SSH-Hosts, Befehle/Preset, Konsole, Host-Status, Update/Upgrade-Checks.
  1. Umgebungen & Domains
  • Live: nexus.int.kusche.berlin
  • Staging: staging.nexus.int.kusche.berlin

Container/Deploy-Layout:

  • /app/live/ -> Live-Code
  • /app/staging/ -> Staging-Code
  • Jeweils mit eigenem /config-Unterordner:
    • /app/live/config/
    • /app/staging/config/

Repo-Layout zu Configs:

  • /config/live/ und /config/staging/ liegen im Repo.
  • Beim Deployment werden die Dateien daraus nach /app//config kopiert.
  • WICHTIG: Im laufenden Container existiert /app/config/ NICHT, sondern nur /app/live/config und /app/staging/config.
  1. Verzeichnisstruktur (Repo)
  • /public/ -> Web Root (index.php, globale Assets)
  • /api/ -> Backend/API-Endpunkte
  • /src/ -> PHP-Kernklassen/Utilities
  • /tools/ -> CLI/Worker/Jobs (z.B. tools/pi_control)
  • /config/ -> Umgebungs-Configs (live/staging)
  • /modules// -> Module (Pages, Assets, Bootstrap)
  • /partials/structure/ -> Header/Footer/Menüs
  • /partials/landingpages/ -> Komplette Seitenlayouts
  • /debug/ -> Custom Logs
  1. Modul-Konzept (WICHTIG)
  • Jedes Modul lebt unter /modules//.
  • Pflicht-Dateien i.d.R.:
    • module.json
    • bootstrap.php (Schema/Setup)
    • pages/*.php (UI/Endpoints)
    • assets/* (modulspezifisches CSS/JS)

Modulspezifische Assets:

  • Modul-JS/CSS MUSS im Modul-Ordner liegen.
  • Laden über Modul-Assets, z.B.:
    • $assets->addStyle('/module/pi_control/asset?file=pi_control.css');
    • $assets->addScript('/module/pi_control/asset?file=hosts.js', 'footer', true);
  • KEINE modulspezifischen Änderungen in /public/assets/*.
  1. Code-Änderungen nach Scope
  • Modul-Aufgaben: nur /modules// + ggf. /tools/ ändern.
  • Globale Layouts: /partials/structure und /public/assets/css/app.css.
  • Konfigurationslogik: nur wenn nötig /config/ und /src/.
  1. Sicherheits-/Netzwerk-Constraints
  • Zugriff im Heimnetz (192.168.178.0/24) per Nginx begrenzt.
  • SSH-Hosts nur Heimnetz.
  1. Pi Control Besonderheiten (konkret)
  • Worker/Jobs unter /tools/pi_control/
  • Check-Updates & Cron nutzen die gleichen SSH-Routinen.
  • Host-Karten, Befehle und Konsole sind UI im Modul.
  • Update/Upgrade-Checks liefern Debug-Ausgaben, die als Tooltip oder Debugzeile angezeigt werden.
  1. Zusammenfassung (kurz) Nexus ist modular, mit strikter Trennung zwischen globalem Layout und modulspezifischem Code. Staging/Live haben eigene /app//config-Strukturen; /config/ im Repo wird beim Deployment kopiert. Modul-Assets gehören ausschließlich in den Modul-Ordner und werden dort geladen.