Internal Flask app that monitors the epi-helpdesk.zammad.com tickets via the Zammad API, deployable as a systemd service behind Apache under /episupport. Features: - Poller: session-login API sync, snapshot diff to detect agent changes (status, owner, priority, closures, new replies); email notifications - Dashboard: ticket overview with sorting, "not closed" filter and highlighting of tickets with unconfirmed changes; per-item and bulk "mark as read" - Analytics: KPIs, response/resolution times, monthly SVG trend chart, distributions (status/priority/group/agent), Excel export - Conversation view: full per-ticket thread cached in the DB (avoids proxy timeouts), inline image attachments, safe HTML-to-text rendering - Write actions: reply to tickets and create new tickets with a confirmation step and attachment upload (incl. clipboard paste); self-triggered actions are synced back so they aren't flagged as changes - Local timezone display (Europe/Berlin) for all timestamps Includes deploy tooling: setup.sh, systemd units and Apache config. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
31 lines
668 B
Desktop File
31 lines
668 B
Desktop File
[Unit]
|
||
Description=EPI-Support Monitor – Web-Dashboard (gunicorn)
|
||
After=network-online.target
|
||
Wants=network-online.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=www-data
|
||
Group=www-data
|
||
WorkingDirectory=/var/www/html/episupport
|
||
EnvironmentFile=/var/www/html/episupport/.env
|
||
ExecStart=/var/www/html/episupport/venv/bin/python -m gunicorn \
|
||
--workers 3 \
|
||
--timeout 120 \
|
||
--graceful-timeout 30 \
|
||
--bind 127.0.0.1:8071 \
|
||
--access-logfile - \
|
||
--error-logfile - \
|
||
wsgi:app
|
||
Restart=on-failure
|
||
RestartSec=5
|
||
|
||
# Härtung
|
||
NoNewPrivileges=true
|
||
PrivateTmp=true
|
||
ProtectSystem=full
|
||
ReadWritePaths=/var/www/html/episupport/data
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|