# EL-KADI Home Security Agent **Autonome** security agent voor thuis — zonder Wazuh, Uptime Kuma, n8n of Security Mesh. De agent: 1. **Observeert** zelf (HTTP/TCP, Docker, Proxmox, LAN-gateway) 2. **Redeneert** (OpenAI met tools, of regels zonder API-key) 3. **Onthoudt** incidenten (SQLite, dedupe) 4. **Meld** via **Telegram** ## Starten ```bash 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: ```bash 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_hosts` whitelist - 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.105:8765/dashboard#security (tab Security → Home Security Agent). Eénmalig schema: ```bash docker exec -i postgres-homelab psql -U mo -d homelab < migrations/004_home_agent_observations.sql # Postgres draait op VM 102: ssh mo@192.168.1.105 → docker exec postgres-homelab psql ... ``` 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 │ └──────────────┘ └──────────────┘ ```