- HTML 60.7%
- Python 39.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Flask+Gunicorn-App, zeigt offene Arbeitspakete projektuebergreifend inkl. Beschreibung, Faelligkeits-Ampel und Suche - loest die Luecke der eingebauten OpenProject-Work-Packages-Ansicht (kein Inhalt sichtbar). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
| templates | ||
| .env.example | ||
| .gitignore | ||
| app.py | ||
| op-dashboard.service | ||
| README.md | ||
| requirements.txt | ||
OpenProject Cross-Projekt-Dashboard
Zeigt alle offenen Arbeitspakete aus OpenProject projektübergreifend in einer kompakten Web-Ansicht — inkl. der vollen Beschreibung. Löst die Lücke der eingebauten globalen "Work packages"-Ansicht von OpenProject, die nur Titel/Status/Projekt pro Zeile anzeigt, aber keinen Inhalt.
Details und Hintergrund im Vault: 30 Projekte/OpenProject Cross-Projekt-Übersicht.md.
Funktionsweise
- Fragt bei jedem Seitenaufruf
/api/v3/work_packagesmit Filterstatus=openab. - Gruppiert nach Projekt (meiste offene Pakete zuerst).
- Pro Arbeitspaket: Titel (verlinkt zu OpenProject), Status, Fälligkeitsdatum (farblich markiert — rot = überfällig, gelb = fällig binnen 7 Tagen), Bearbeiter, und die volle Beschreibung aufklappbar.
- Freitext-Suche filtert clientseitig über Titel/Beschreibung/Projekt.
Setup
python3 -m venv venv
./venv/bin/pip install -r requirements.txt gunicorn
cp .env.example .env # OP_API_TOKEN eintragen
./venv/bin/gunicorn -w 2 -b 0.0.0.0:8420 app:app
Für Dauerbetrieb: op-dashboard.service nach /etc/systemd/system/ kopieren,
dann systemctl enable --now op-dashboard.
Bekannte Einschränkung: Hairpin-NAT
Läuft der Dashboard-Container auf demselben Host wie OpenProject selbst und
die öffentliche Domain zeigt auf die eigene WAN-IP dieses Hosts, kann der
Container die Domain nicht direkt erreichen (Traffic zur eigenen öffentlichen
IP wird nicht zurückgeroutet). Workaround: einen /etc/hosts-Eintrag setzen,
der die Domain intern auf die OpenProject-Container-IP umbiegt — dafür ist
verify=False bei den Requests nötig (Zertifikat passt dann nicht mehr exakt
zur IP), was für rein internen Traffic zwischen zwei Containern auf demselben
Host unkritisch ist.
Deployment (Stand 17.07.2026)
LXC (CTID 200201, Debian 12) auf dem Hetzner-Proxmox-Host gtx
(10.0.255.253, Firmen-Infrastruktur), IP 10.0.200.201, erreichbar unter
http://10.0.200.201:8420/.