diff --git a/flow.html b/flow.html new file mode 100644 index 0000000..b19bbb0 --- /dev/null +++ b/flow.html @@ -0,0 +1,91 @@ + + +
+ + +
+%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#21262d', 'primaryTextColor': '#c9d1d9', 'primaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'edgeLabelBackground': '#0d1117'}}}%%
+flowchart TD
+ subgraph sched ["Scheduler"]
+ cron_bran["⏰ cron 06:00 daily"]
+ cron_varys["⏰ cron every 15 min"]
+ end
+
+ subgraph agents ["One-Shot Agents"]
+ bran["bran-changelog"]
+ varys["varys-monitor"]
+ end
+
+ subgraph external ["External Sources"]
+ github["GitHub API"]
+ opnsense["OPNsense changelog"]
+ end
+
+ subgraph llm ["LLM Layer"]
+ hodor["hodor-gateway :8200"]
+ ollama["Ollama :11434"]
+ end
+
+ subgraph infra ["Infrastructure — 12 services"]
+ svc["portainer · gitea · open-webui · npm\nuptime-kuma · headscale · vaultwarden\nplane · homarr · netbox · hodor · citadel"]
+ end
+
+ subgraph storage ["Shared Storage — /opt/"]
+ sites["sites/\nchangelog/ varys/ bran/"]
+ agentOS["agent-os/logs/\nbran-changelog/ varys-monitor/"]
+ end
+
+ subgraph serving ["Serving Layer"]
+ nginx["agent-sites nginx"]
+ citadel["citadel-mcp :8300"]
+ end
+
+ subgraph gui ["User Interface"]
+ web["agents.nxm.co.za"]
+ openwebui["Open WebUI :3010"]
+ end
+
+ cron_bran --> bran
+ cron_varys --> varys
+
+ bran -->|fetch releases| github
+ bran -->|fetch changelog| opnsense
+ github --> bran
+ opnsense --> bran
+ bran -->|POST /ask| hodor
+ hodor <-->|api/chat| ollama
+ hodor --> bran
+
+ varys -->|HTTP GET| svc
+
+ bran -->|index.html + last-output.md| sites
+ bran -->|last-run.json| agentOS
+ varys -->|index.html + last-output.md| sites
+ varys -->|last-run.json| agentOS
+
+ sites --> nginx
+ nginx -->|NPM proxy| web
+
+ agentOS -->|list_agents / get_agent_status| citadel
+ sites -->|get_agent_output| citadel
+ citadel -->|MCP tools| openwebui
+
+