docs: document Hermes Atlas architecture diagram
This commit is contained in:
+155
@@ -0,0 +1,155 @@
|
|||||||
|
---
|
||||||
|
title: Hermes / Atlas Architecture Diagram
|
||||||
|
type: architecture-note
|
||||||
|
created: 2026-05-29
|
||||||
|
tags:
|
||||||
|
- hermes
|
||||||
|
- atlas
|
||||||
|
- architecture
|
||||||
|
- homelab
|
||||||
|
- docker
|
||||||
|
- kubernetes
|
||||||
|
---
|
||||||
|
|
||||||
|
# Hermes / Atlas Architecture Diagram
|
||||||
|
|
||||||
|
A vector architecture diagram was created for the current Hermes/Atlas agent setup, host Docker/systemd AI services, AgentMon stack, and k0s Kubernetes homelab services.
|
||||||
|
|
||||||
|
## Primary artifacts
|
||||||
|
|
||||||
|
- SVG vector source: `/home/will/diagrams/hermes-atlas-architecture.svg`
|
||||||
|
- High-resolution PNG export: `/home/will/diagrams/hermes-atlas-architecture-6400.png`
|
||||||
|
- HTML presentation page: `/home/will/hermes-atlas-architecture.html`
|
||||||
|
- Maintenance README: `/home/will/diagrams/README-hermes-atlas-architecture.md`
|
||||||
|
- SVG extraction script: `/home/will/diagrams/extract-svg.py`
|
||||||
|
|
||||||
|
## Why SVG
|
||||||
|
|
||||||
|
The diagram is kept as standalone SVG so it can be:
|
||||||
|
|
||||||
|
- scaled without resolution loss,
|
||||||
|
- edited later in Inkscape, Figma, Illustrator, VS Code, or a browser-aware SVG editor,
|
||||||
|
- exported to PNG at any resolution,
|
||||||
|
- updated from the HTML presentation page when the layout changes.
|
||||||
|
|
||||||
|
## Current coverage
|
||||||
|
|
||||||
|
### Hermes / Atlas agent plane
|
||||||
|
|
||||||
|
- Telegram, Discord, email, and local UI entrypoints.
|
||||||
|
- Default Hermes gateway process.
|
||||||
|
- Hermes state/context layer: `state.db`, sessions, memory, skills, config, auth pools.
|
||||||
|
- Kanban dispatcher configured inside the gateway.
|
||||||
|
- Specialist profiles including engineer, reviewer, orchestrator, researcher/writer, ops, and glm-simple.
|
||||||
|
- Cron jobs and webhook subscriptions.
|
||||||
|
- n8n/webhook producers for reminders, diary nudges, medication reminders, and Pi run results.
|
||||||
|
|
||||||
|
### Host AI / automation plane
|
||||||
|
|
||||||
|
- Docker Compose services under `/home/will/lab/swarm`:
|
||||||
|
- Brave Search MCP `:18802`
|
||||||
|
- SearXNG `:18803`
|
||||||
|
- Whisper GPU `:18801`
|
||||||
|
- Whisper CPU `:18811`
|
||||||
|
- Kokoro TTS `:18805`
|
||||||
|
- n8n `:18808`
|
||||||
|
- LiteLLM defined on `:18804`, but not running in the captured snapshot
|
||||||
|
- User systemd services:
|
||||||
|
- `llama-server.service` on `:18806`
|
||||||
|
- `ollama.service` on `:18807`
|
||||||
|
- AgentMon:
|
||||||
|
- ingest `:8080`
|
||||||
|
- query API `:8081`
|
||||||
|
- UI `:8082`
|
||||||
|
- Postgres and NATS backing services
|
||||||
|
|
||||||
|
### k0s Kubernetes plane
|
||||||
|
|
||||||
|
- Cluster: `k0s-cluster`
|
||||||
|
- Nodes:
|
||||||
|
- `pi50` control-plane, `192.168.153.210`
|
||||||
|
- `pi51` worker, `192.168.153.206`
|
||||||
|
- `pi3` worker, `192.168.153.184`
|
||||||
|
- Main layers:
|
||||||
|
- ArgoCD GitOps
|
||||||
|
- MetalLB
|
||||||
|
- HAProxy, nginx, and Traefik ingress
|
||||||
|
- Tailscale exposure
|
||||||
|
- atlas-control
|
||||||
|
- gitea
|
||||||
|
- minio
|
||||||
|
- home-assistant
|
||||||
|
- monitoring
|
||||||
|
- pihole2
|
||||||
|
- plex
|
||||||
|
- tools
|
||||||
|
- backup stores
|
||||||
|
|
||||||
|
## Refresh workflow
|
||||||
|
|
||||||
|
For simple edits, edit the SVG directly:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
inkscape /home/will/diagrams/hermes-atlas-architecture.svg
|
||||||
|
```
|
||||||
|
|
||||||
|
For larger layout/content edits, edit the HTML page and regenerate the SVG:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$EDITOR /home/will/hermes-atlas-architecture.html
|
||||||
|
/home/will/diagrams/extract-svg.py
|
||||||
|
```
|
||||||
|
|
||||||
|
To export a fresh high-resolution PNG from the SVG:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chromium --headless --disable-gpu --no-sandbox --hide-scrollbars \
|
||||||
|
--window-size=3200,2240 \
|
||||||
|
--force-device-scale-factor=2 \
|
||||||
|
--screenshot=/home/will/diagrams/hermes-atlas-architecture-6400.png \
|
||||||
|
file:///home/will/diagrams/hermes-atlas-architecture.svg
|
||||||
|
```
|
||||||
|
|
||||||
|
## Refresh checklist
|
||||||
|
|
||||||
|
When updating the diagram from live infrastructure, re-check:
|
||||||
|
|
||||||
|
- Hermes profile roster and gateway status.
|
||||||
|
- Active Kanban worker processes.
|
||||||
|
- Cron jobs and webhook subscriptions.
|
||||||
|
- `/home/will/lab/swarm/docker-compose.yaml` services and currently running containers.
|
||||||
|
- User systemd service units for local model endpoints.
|
||||||
|
- AgentMon containers and exposed ports.
|
||||||
|
- k0s nodes, load balancer services, ArgoCD app sync/health status, and selected namespaces.
|
||||||
|
- Deliberate dormant or degraded states, such as OpenClaw remaining dormant or LiteLLM being defined but not running.
|
||||||
|
|
||||||
|
## Source commands used
|
||||||
|
|
||||||
|
The initial diagram was based on live read-only checks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
cd /home/will/lab/swarm && docker compose config --services
|
||||||
|
cd /home/will/lab/swarm && make ps
|
||||||
|
systemctl --user is-active llama-server.service ollama.service llama-swap.service
|
||||||
|
systemctl --user cat llama-server.service
|
||||||
|
systemctl --user cat ollama.service
|
||||||
|
ss -ltnp
|
||||||
|
hermes profile list
|
||||||
|
hermes cron list
|
||||||
|
hermes webhook list
|
||||||
|
kubectl config get-contexts
|
||||||
|
kubectl get nodes -o wide
|
||||||
|
kubectl get ns
|
||||||
|
kubectl get svc -A --field-selector spec.type=LoadBalancer -o wide
|
||||||
|
kubectl get applications -n argocd
|
||||||
|
kubectl get deploy,sts,ds,pods,svc,ingress -n <namespace>
|
||||||
|
```
|
||||||
|
|
||||||
|
Secrets were intentionally omitted.
|
||||||
|
|
||||||
|
## Related
|
||||||
|
|
||||||
|
- [[Atlas]]
|
||||||
|
- [[Hermes]]
|
||||||
|
- [[Inbox/Inbox]]
|
||||||
Reference in New Issue
Block a user