Publish Docs Site / build (push) Failing after 5s
- mkdocs.yml with dark slate theme, nav for 12 ITPP projects - build-docs.sh aggregates docs from all project repos - .gitea/workflows/docs-publish.yml for nightly rebuild+deploy - README and CHANGELOG for the itpp-docs repo itself - docs-source/ populated from all 12 repos - site/ ready for deployment to docs.itpropartner.com
2.4 KiB
2.4 KiB
Ops Portal — ops.itpropartner.com
Architecture
- Server: Core (152.53.192.33, netcup RS 2000)
- Backend: FastAPI at
/opt/ops-portal/server.py(port 8090) - Proxy: Caddy → reverse_proxy to 127.0.0.1:8090
- Static files:
/opt/ops-portal/static/— 11 HTML pages, ops.css, app.js, utils.js - Auth: JWT via
POST /api/auth/login, token in localStorage - Data:
/var/www/ops/data/ops-status.json(5-min collector refresh) - Collector:
/root/.hermes/scripts/ops-data-collector.py— Wazuh, Bitdefender, S3, UISP, system health - Systemd:
ops-portal.service, env from/root/.hermes/.env - Credentials: ippadmin (password → Vaultwarden /
~/.hermes/.env)
Pages (11 total)
| Page | Path | Description |
|---|---|---|
| Dashboard | / | System health, widgets, audit log |
| Services | /services.html | Systemd service control, audit log, server column |
| Servers | /servers.html | 5 servers with ping health |
| Network | /network.html | UISP data (44 sites, 90 devices), DNS zones |
| Backups | /backups.html | S3 bucket status (6 buckets) |
| FleetTracker | /fleettracker360.html | Traccar device tracking |
| Cron Jobs | /cron.html | Hermes cron jobs with expandable scripts |
| Config | /config.html | Active configs, /root/.hermes/scripts/ listing |
| Logs | /logs.html | Aggregated log viewer |
| Audit | /audit.html | Full audit trail |
| Costs | /cost.html | API cost tracking by model |
API Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/auth/login | No | JWT authentication |
| GET | /api/health | No | Health check, DB status |
| GET | /api/status | JWT | Full dashboard data (17 sections) |
| GET | /api/servers | JWT | Server list with IPs |
| GET | /api/servers/health | JWT | Ping health (all 7 LIVE) |
| GET | /api/audit-log?limit=N | JWT | Audit trail entries |
| GET | /api/ft360/status | JWT | FleetTracker device data |
Critical Services (API restart blocked)
hermes, hermes-assistant, hermes-browser, caddy, ops-portal, mysql-tunnel
Dashboard Widgets
- System Health — Core metrics (jobs, disk, memory, S3, APIs)
- Wazuh Security — agent count, alerts
- Bitdefender GravityZone — 9 managed endpoints
- Alerts and Notifications — DR issues, backup failures, cron errors
- Quick Actions — Restart Ops Portal
Recovery
systemctl restart ops-portal
systemctl reload caddy
python3 /root/.hermes/scripts/ops-data-collector.py