Root cause rozjazdu panelu agents.okit.pl vs services.json NIE lezal w
observer.py/operator_ui.py (te sa poprawne: ghost-prune dziala in-memory
i na plik co cykl, operator_ui czyta services.json na zywo bez cache).
Prawdziwy lancuch: npm proxy_host agents.okit.pl -> 100.108.208.3:18180
(Tailscale IP PIHA, nie VPS!) -> legacy kontener agent-system-webui
(services/agent-system/, sprzed migracji do control-plane/, brak
service.yaml, nieobecny w hosts/piha/services.yaml i topology.yaml).
Jego runtime-materializer czytal z Redis (homelab:services:*), do ktorego
NIC juz nie pisze w obecnej architekturze -- stad 27 martwych/ghost
wpisow (w tym hash-prefixed) i inna liczba serwisow (110 vs 117 w
services.json z VPS).
Fix na to juz istnial w repo od 2026-05-27 (
|
||
|---|---|---|
| .. | ||
| runtime-materializer | ||
| scripts | ||
| telegram-bot | ||
| webui | ||
| action-model.md | ||
| deploy.sh | ||
| docker-compose.yml | ||
| env.example | ||
| README.md | ||
Agent System
Central runtime materializer and Operator Control Plane UI.
Components
- Redis: Central state store (on PIHA).
- Runtime Materializer: Converts Redis state to JSON files in
/opt/homelab/world. - Web UI: Exposes API endpoints and serving the Operator UI.
- Telegram Bot: Provides operator commands and action approvals via Telegram.
Configuration
Environment variables should be set in .env (see env.example).
Key variables for the Telegram Bot:
TELEGRAM_BOT_TOKEN: Your bot token from @BotFather.TELEGRAM_ALLOWED_USER_IDS: Comma-separated list of authorized Telegram User IDs.CONTROL_PLANE_URL: URL to theagent-system-webui(default:http://webui:8080).
Telegram Commands
/status: Check bot and API connectivity./summary: System health overview./nodes: List homelab nodes and their status./services: Summary of services across nodes./unhealthy: List all unhealthy components./incidents: View active incidents./actions: Summary of operator actions./help: List all commands.
Deployment (on PIHA)
cd services/agent-system
./deploy.sh
Deployment (on CHELSTY)
cd services/stability-agent
docker compose up -d --build
Verification
The deploy.sh script automatically verifies the local endpoints.
You can also manually check:
# Check runtime summary
curl http://localhost:18180/summary
# Check discovered nodes
curl http://localhost:18180/nodes
# Check discovered services
curl http://localhost:18180/services
Directory Structure
/opt/homelab/world: Contains materialized JSON state./opt/homelab/state: Contains operator configuration and local heartbeats.