Auf der Produktion blieb das Kanban-Board leer, obwohl die API lief und der registrierte Agent angezeigt wurde: Tickets entstehen nur aus Agenten-Meldungen oder aus bin/sync-codeberg.php, und das Skript war zwar als "per Cron oder manuell" dokumentiert, wurde aber nirgends automatisch ausgefuehrt. Neuer Compose-Service "sync": nutzt Image, Volume und SQLite-Datei des api-Service, macht sofort beim Start einen Lauf und wiederholt ihn alle MONITOR_SYNC_INTERVAL Sekunden (Default 600). Ein fehlgeschlagener Lauf bricht die Schleife nicht ab, damit ein Codeberg-Ausfall keinen Restart-Loop ausloest. Der Service verbindet sich ausschliesslich ausgehend nach codeberg.org und braucht daher kein Port-Mapping - in Produktion sind weder Proxy- noch Firewall-Freigaben noetig. update.sh startet den Dienst mit, die Doku beschreibt den Service statt des Cron-Hinweises; der manuelle Aufruf bleibt als Debug-Weg dokumentiert, weil dort die Klartext-Fehler des Codeberg-Clients sichtbar werden. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# monitor REST-API (Phase 1)
|
|
|
|
Vanilla-PHP-REST-API (kein Framework, siehe Visualization.md Abschnitt 5) fuer Tickets,
|
|
Events, Systeme, KPIs und Agenten. Persistenz in SQLite (`api/data/monitor.sqlite`).
|
|
|
|
Vollstaendige Endpunkt-Dokumentation: [../API.md](../API.md).
|
|
|
|
## Entwicklung nur mit Docker (kein lokales PHP/Composer noetig)
|
|
|
|
Aus dem Repo-Wurzelverzeichnis:
|
|
|
|
```bash
|
|
cp .env.example .env # einmalig, MONITOR_ADMIN_API_KEY anpassen
|
|
|
|
docker compose up --build # startet die API auf http://localhost:8080
|
|
docker compose run --rm api composer test # PHPUnit inkl. Coverage
|
|
docker compose run --rm api php bin/sync-codeberg.php # Backlog/Done einmalig ziehen (Debug)
|
|
```
|
|
|
|
Im laufenden Betrieb wird der Codeberg-Sync nicht manuell angestossen, sondern vom
|
|
Compose-Service `sync` alle `MONITOR_SYNC_INTERVAL` Sekunden ausgefuehrt (siehe
|
|
[../API.md](../API.md), Abschnitt "Codeberg-Sync").
|
|
|
|
Composer-Abhaengigkeiten (nur PHPUnit als Dev-Dependency) werden beim ersten Start
|
|
automatisch **im Container** installiert (`docker/entrypoint.sh`) - auf dem Host ist
|
|
weder PHP noch Composer noch SQLite erforderlich.
|