1.9 KiB
1.9 KiB
Hermes Assistant — admin-ai SSE Proxy Reference
Deployed Jul 8, 2026. FastAPI SSE proxy that streams tokens from admin-ai.itpropartner.com (OpenAI-compatible API) to a PWA frontend.
Architecture
Browser (PWA) → Caddy (app.itpropartner.com) → FastAPI (:8082) → admin-ai.itpropartner.com/v1
- Frontend:
/var/www/assistant/— served directly by Caddy - API: reverse-proxied to
127.0.0.1:8082 - Backend:
/root/hermes-assistant/server.py— FastAPI app - Service:
hermes-assistant.service— systemd-managed - Sessions: JSON files in
/root/hermes-assistant/sessions/
API Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/health |
Health check |
| GET | /api/sessions |
List recent sessions |
| DELETE | /api/sessions/{id} |
Delete session |
| POST | /api/chat |
SSE streaming chat |
Configuration
Environment variables (in systemd unit):
ADMIN_AI_API_KEY— OpenAI-compatible API keyADMIN_AI_BASE_URL—https://admin-ai.itpropartner.com/v1HERMES_MODEL—deepseek-chatPORT—8082
Caddyfile mapping:
@api path /api/*
handle @api { reverse_proxy 127.0.0.1:8082 }
handle { root * /var/www/assistant; try_files {path} /index.html; file_server }
Code locations
- Backend:
/root/hermes-assistant/server.py - Frontend:
/var/www/assistant/index.html - PWA manifest:
/var/www/assistant/manifest.json - Service worker:
/var/www/assistant/sw.js - Icon:
/var/www/assistant/icon.svg - Systemd unit:
/etc/systemd/system/hermes-assistant.service - Caddy config:
/etc/caddy/Caddyfile - Sessions:
/root/hermes-assistant/sessions/
Session persistence
Sessions are stored as JSON arrays of messages in /root/hermes-assistant/sessions/<session_id>.json. The backend appends each user + assistant response, so the session grows unbounded. For production, add a session rotation or truncation policy (e.g. keep last 50 messages).