Files
hermes-skills/skills/devops/python-web-service-deployment/references/hermes-assistant-deployment.md
T

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 key
  • ADMIN_AI_BASE_URLhttps://admin-ai.itpropartner.com/v1
  • HERMES_MODELdeepseek-chat
  • PORT8082

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).