# Persistent Memory Facts that don't expire. If you'd have to re-explain it to a new agent every time, it belongs here. Last updated: 2026-06-19 --- ## Infrastructure decisions - RustDesk is self-hosted on 172.27.40.3 — clients connect to local server not public relay - NPM handles all SSL termination — internal services use HTTP, NPM adds HTTPS - Headscale v0.28: all write operations require numeric user ID, not username - Tailscale on Windows overrides DNS — disconnect before testing split DNS changes - Docker Compose only — no Kubernetes, no Swarm - Docker → OPNsense API: HTTP 400 from Docker proxy network — always run OPNsense API scripts from the host - All internal subdomains: gray-cloud CNAME → opnsense.nxm.co.za in Cloudflare. Proxied = 523 error. - OPNsense split DNS: all subdomains resolve to 172.27.40.3 internally via Unbound host overrides ## Decommissioned services (do not reference) - **Netbird:** Fully removed from server 2026-05-28. Orphaned clients on mwp/coetzee/b0qxxx/fwlaw firewalls pending removal. - **WireGuard (N2W):** Fully removed 2026-05-30. Replaced by OpenVPN S2S. - **Flowise:** Replaced by Open WebUI 2026-05-01. - **Zabbix:** No longer running (monitoring moved to Grafana + InfluxDB + Telegraf). ## Agent OS build state - Phase 1-2 complete (file structure + identity interview) - Phase 3 (infra-monitor skill): spec written but stale, not yet implemented - Notifications target: Raven at http://raven-notify:8400 (Discord + Gmail) - All agent logs write to `/opt/agent-os/logs//last-run.json` ## Credential policy - All API keys and passwords: `~/.nxm-keys` (chmod 600) - Never write credential values into output, logs, docs, or config files - Reference credential location instead ## VPN topology - **Headscale** (self-hosted Tailscale): remote access for admin devices - **OpenVPN S2S:** site-to-site for client firewalls (bezhuis/mwp/coetzee done, fwlaw pending) - Hub tunnel IPs: bezhuis=172.16.17.2, mwp=172.16.17.3, coetzee=172.16.17.4 ## Ollama - Host: 172.27.40.20 (Windows 11 Pro, NxM-AI), Vulkan GPU - Models: gemma4, llama3.1:8b, phi4 - Auto-starts via Scheduled Task (S4U + AtStartup) - Used by: hodor-gateway, sam-research, qyburn-coder, Open WebUI