02b1d155d4
The autonomous agent writes all observations to agent.* tables consumed by Homelab Command on port 8765. Co-authored-by: Cursor <cursoragent@cursor.com>
EL-KADI Home Security Agent
Autonome security agent voor thuis — zonder Wazuh, Uptime Kuma, n8n of Security Mesh.
De agent:
- Observeert zelf (HTTP/TCP, Docker, Proxmox, LAN-gateway)
- Redeneert (OpenAI met tools, of regels zonder API-key)
- Onthoudt incidenten (SQLite, dedupe)
- Meld via Telegram
Starten
cd /volume1/docker/homelab-configs/apps/home-security-agent
cp .env.example .env
# Vul TELEGRAM_BOT_TOKEN en TELEGRAM_CHAT_ID in
# Optioneel: OPENAI_API_KEY voor agentische modus
docker-compose up -d --build
Eén run testen:
docker-compose run --rm security-agent python -m agent.main once
Configuratie
| Bestand | Doel |
|---|---|
config/targets.yaml |
Wat gemonitord wordt |
config/policies.yaml |
Interval, quiet hours, severity |
.env |
Telegram + OpenAI |
Agentische modus (LLM)
Met OPENAI_API_KEY krijgt het model tools (probe_tcp, probe_http, probe_proxmox) en mag zelf verifiëren voordat het alert=true zet.
Zonder key: regel-engine (down services → Telegram).
Uitbreiden
Voeg in targets.yaml services toe. Voor diepere agent-gedrag later:
- SSH-log tail (auth failures)
- Proxmox API (VM status) als aparte tool
- LAN device discovery +
known_hostswhitelist - Lokale Ollama (
AGENT_MODEL+ OpenAI-compatible URL)
Dashboard
Alle observaties gaan naar PostgreSQL (agent.observation_runs, agent.findings, agent.incidents).
Bekijk ze in Homelab Command: http://192.168.1.211:8765/dashboard#security (tab Security → Home Security Agent).
Eénmalig schema:
docker exec -i postgres-homelab psql -U mo -d homelab < migrations/004_home_agent_observations.sql
Of vanuit homelab-command: scripts/apply_mesh_migrations.sh (past alle migrations/*.sql toe).
Architectuur
┌─────────────┐ ┌──────────────┐ ┌────────────┐ ┌──────────┐
│ Observer │────▶│ Brain │────▶│ PostgreSQL │────▶│ Dashboard│
│ (eigen │ │ LLM + tools │ │ agent.* │ │ :8765 │
│ probes) │ │ of regels │ └────────────┘ └──────────┘
└─────────────┘ └──────┬───────┘ │
│ │
┌──────▼───────┐ ┌──────▼───────┐
│ SQLite state │ │ Telegram │
│ dedupe │ │ meldingen │
└──────────────┘ └──────────────┘