No description
Find a file
2026-08-02 22:15:57 +02:00
api Klick auf den PO oeffnet den Projekte-Dialog zuverlaessig 2026-08-02 22:09:31 +02:00
docker/nginx Buero-Ueberschrift durch Agent-Status ersetzen, Erklaertext durch Reload-Countdown ersetzt 2026-07-29 00:03:26 +02:00
html Klick auf den PO oeffnet den Projekte-Dialog zuverlaessig 2026-08-02 22:09:31 +02:00
tests/frontend Tickets aus mehreren Codeberg-Projekten anzeigen (monitor/Steuerkram/nc-gantt) 2026-07-30 17:34:49 +02:00
.env.example Codeberg-Projekte des Sync ueber ein Modal am PO konfigurierbar machen 2026-07-30 17:53:39 +02:00
.gitignore Phase 2 der Neuausrichtung: Statische Buero-Szene (SVG, Demo-Daten) 2026-07-28 00:19:22 +02:00
API.md Codeberg-Projekte des Sync ueber ein Modal am PO konfigurierbar machen 2026-07-30 17:53:39 +02:00
check_fds.sh :qErster Commit 2025-11-10 14:31:17 +00:00
credentials-sample.conf first commit 2025-11-10 15:14:10 +00:00
Detailantworten.md Detailantworten.md 2026-07-09 17:37:07 +02:00
Detailfragen.md Plan für Neuausrichtung als Büro-Visualisierung (Issue #2) 2026-07-09 16:12:53 +02:00
docker-compose.yml Klick auf den PO oeffnet den Projekte-Dialog zuverlaessig 2026-08-02 22:09:31 +02:00
echo :qErster Commit 2025-11-10 14:31:17 +00:00
hosts-sample.conf first commit 2025-11-10 15:14:10 +00:00
mail_fds.py :qErster Commit 2025-11-10 14:31:17 +00:00
package.json Phase 2 der Neuausrichtung: Statische Buero-Szene (SVG, Demo-Daten) 2026-07-28 00:19:22 +02:00
README.md Codeberg-Projekte des Sync ueber ein Modal am PO konfigurierbar machen 2026-07-30 17:53:39 +02:00
register-agent.sh Phase 6+7 der Neuausrichtung: Tuer-Besuche der Rolle "user", alte Tabellenansicht entfernt 2026-07-28 21:58:29 +02:00
update.sh Codeberg-Sync als Dauerlaeufer statt manuellem Aufruf 2026-07-28 23:29:40 +02:00
Visualization.md Phase 6+7 der Neuausrichtung: Tuer-Besuche der Rolle "user", alte Tabellenansicht entfernt 2026-07-28 21:58:29 +02:00

🖥️ monitor

monitor überwacht mehrere Systeme (per Ping und/oder per REST-API-Meldungen entfernter Agenten) und zeigt den Zustand als interaktive Büro-Visualisierung (Kanban-Board + Monitor-Wand mit Agenten an Schreibtischen).

Der vollständige Umbauplan steht in Visualization.md (Roadmap Phase 0-7), die dazugehörigen Klärungen in Detailfragen.md und Detailantworten.md.


🚀 Features

  • REST-API (api/, siehe API.md) für Tickets, Events, Systeme, KPIs und Agenten-Aktivität, mit statischen API-Keys pro Agent
  • Büro-Visualisierung (html/office.html) als Vanilla-SVG-Szene: Kanban-Board, Monitor-Wand (Events/Systeme/KPIs), 8 Schreibtische - zeigt live die Daten aus der REST-API (Push per Server-Sent Events, Polling-Fallback), Klick auf Board/Monitore öffnet Detail-Modals, Agenten laufen animiert zwischen Schreibtisch/Board/Monitor-Wand/Kaffee-Ecke (Phase 3-5, siehe Visualization.md Abschnitt 9). Ist die API nicht erreichbar, zeigt die Szene ersatzweise Demo-Daten — kenntlich gemacht durch einen roten Banner „API nicht erreichbar!". Die Basis-URL der API kommt aus MONITOR_API_BASE (siehe .env.example).
  • Klick auf den PO öffnet ein Modal, in dem sich die vom Codeberg-Sync gelesenen Projekte (Owner/Repo + Farbe) hinzufügen, bearbeiten und löschen lassen (Issue #27) — Änderungen wirken sofort im laufenden sync-Dienst, ohne Neustart. Schreibende Aktionen fragen einmalig den MONITOR_ADMIN_API_KEY ab und merken ihn sich im Browser.
  • Codeberg-Sync als Dauerläufer (Compose-Service sync): füllt Backlog und Done automatisch aus den Issues mehrerer konfigurierter Codeberg-Projekte (je Projekt mit eigener Ticket-Farbe, siehe oben) — periodisch alle MONITOR_SYNC_INTERVAL Sekunden und, wenn ein Webhook eingerichtet ist, innerhalb von Sekunden nach jeder Issue-Änderung (POST /api/v1/webhooks/codeberg, HMAC-signiert per CODEBERG_WEBHOOK_SECRET). Siehe API.md Abschnitt „Codeberg-Sync" — dort steht auch die Einrichtung im Codeberg-Repo.
  • Weiterhin: klassische Ping-Überwachung (check_fds.sh, hosts.conf, mail_fds.py) als eine Datenquelle für den System-Monitor; die alte tabellarische Statusseite ist mit Phase 7 entfallen (F16), status.txt speist weiterhin den System-Monitor

📁 Projektstruktur

  • api/ — REST-API (PHP, SQLite), siehe api/README.md
  • html/ — Frontend: office.html (Büro-Visualisierung), js/, css/
  • tests/frontend/ — Node-Tests für die Frontend-Layoutlogik (node --test)
  • check_fds.sh, mail_fds.py, hosts-sample.conf — bestehende Ping-Überwachung
  • docker-compose.yml — komplette Entwicklungsumgebung (siehe unten)
  • update.sh — holt die neueste Version vom konfigurierten Git-Remote und aktualisiert die Docker-Compose-Umgebung (Abhängigkeiten, Images, Dienste, Tests)
  • register-agent.sh — Hilfsskript, um einen neuen Agenten per POST /api/v1/agents zu registrieren (siehe API.md Abschnitt "Agenten")

🐳 Entwicklung (nur Docker, kein lokales PHP/Node nötig)

Analog zum NC-Gantt-Projekt läuft die gesamte Ausführung (Bauen, Entwickeln, Testen) in Docker-Compose-Containern; auf dem Host muss nichts installiert werden.

cp .env.example .env               # einmalig, MONITOR_ADMIN_API_KEY anpassen

docker compose up --build          # API auf :8091, Buero-Visualisierung auf :8090, Sync
docker compose run --rm api composer test      # PHPUnit (API)
docker compose run --rm frontend               # Node-Tests (Frontend-Layoutlogik)
docker compose logs -f sync                    # Codeberg-Sync mitlesen

Der Browser erreicht die API nicht über das Compose-Netzwerk, sondern über die in MONITOR_API_BASE (.env) hinterlegte URL — der Default http://localhost:8091/api/v1 passt zum Port-Mapping oben. Wer die Ports in docker-compose.yml ändert oder das System hinter einem Reverse Proxy betreibt, muss MONITOR_API_BASE entsprechend nachziehen, sonst zeigt die Szene den Banner „API nicht erreichbar!" und fällt auf Demo-Daten zurück. Der Webserver liefert den Wert zur Laufzeit als /config.js aus (docker/nginx/default.conf.template), ein Build-Schritt ist dafür nicht nötig.

Details zur API: api/README.md. Details zu den Endpunkten: API.md.