diff --git a/docs/hardware/environment.md b/docs/hardware/environment.md index 327c1e7..f1c64af 100644 --- a/docs/hardware/environment.md +++ b/docs/hardware/environment.md @@ -39,6 +39,7 @@ Five nodes running Proxmox VE: | VM | Host | VMID | Local IP | Tailscale | Purpose | |----|------|------|----------|-----------|---------| | cortex | toc | 150 | 192.168.1.150 | 100.64.0.14 | GPU compute — Open WebUI, Ollama, Qdrant, TEI, Claude Code | +| recon-vm | data | 131 | 192.168.1.130 | 100.64.0.24 | RECON knowledge extraction pipeline, Files, Kiwix | | arr | media | 105 | 192.168.1.160 | 100.64.0.18 | ARR media automation stack (Jellyfin, Sonarr, Radarr, etc.) | ### cortex VM Details @@ -51,6 +52,17 @@ Five nodes running Proxmox VE: - **User:** zvx (sudo, SSH keys from cluster) - **Claude Code:** installed +### recon-vm Details + +- **OS:** Ubuntu 24.04.4 LTS (cloud-init), kernel 6.8.0-110-generic +- **Resources:** 4 cores, 16GB RAM, 100GB disk +- **Software:** Docker 29.4.0, Python 3.12.3, nginx, sqlite3, Tailscale +- **Systemd services:** recon (8420), recon-watchdog, kiwix (8430), nginx (8888) +- **NFS mounts:** pi-nas:/export/library → /mnt/library, /mnt/nav, /mnt/kiwix +- **User:** zvx (sudo, SSH key auth) +- **Migrated from:** CT 130 (LXC) on 2026-04-19. Tailscale identity preserved (100.64.0.24). +- **Note:** Old CT 130 is stopped on the data host, not yet destroyed. + ### arr VM Details - **OS:** Ubuntu 24.04 (cloud-init) @@ -73,6 +85,8 @@ Five nodes running Proxmox VE: | matt-desktop | 192.168.1.111 | 100.64.0.10 | Personal workstation (Windows, your PC) | | Contabo Server | 5.189.158.149 | 100.64.0.1 | External VPS: Mail, Authentik, Headscale, Forge, Matrix | +*Last updated: 2026-04-19 — CT 130 (RECON LXC) migrated to VM 131 (recon-vm)* + ## LXC Containers | Container | Host | Local IP | Tailscale | Purpose | @@ -88,7 +102,6 @@ Five nodes running Proxmox VE: | meshai | utility (CT 108) | 192.168.1.144 | 100.64.0.32 | MeshAI - LLM-powered Meshtastic assistant | | archivist | utility (CT 118) | 192.168.1.118 | — | Archivist knowledge pipeline | | peertube | media (CT 110) | 192.168.1.170 | 100.64.0.23 | PeerTube video streaming | -| recon | data (CT 130) | 192.168.1.130 | 100.64.0.24 | RECON knowledge extraction pipeline | ## IP Allocation Scheme @@ -128,7 +141,7 @@ Current registered nodes (25 total): | pi-nas | 100.64.0.21 | Pi | | mesh-bridge | 100.64.0.22 | LXC | | peertube | 100.64.0.23 | LXC | -| recon | 100.64.0.24 | LXC | +| recon | 100.64.0.24 | VM | | meshmonitor-dev | 100.64.0.27 | LXC | | gl-a1300 | 100.64.0.29 | Router | | bluefin | 100.64.0.30 | Desktop | diff --git a/docs/services/services.md b/docs/services/services.md index e1a874e..0fae730 100644 --- a/docs/services/services.md +++ b/docs/services/services.md @@ -35,8 +35,8 @@ | Open WebUI | cortex (VM 150) | 192.168.1.150:8080 | https://ai.echo6.co | AI chat interface (Docker, Ollama backend, SSO) | | Qdrant | cortex (VM 150) | 192.168.1.150:6333 | Internal | Vector database (Docker, RECON knowledge store) | | TEI | cortex (VM 150) | 192.168.1.150:8090 | Internal | Text embeddings (Docker, bge-m3 1024-dim) | -| RECON | data (CT 130) | 192.168.1.130:8420 | https://recon.echo6.co | Knowledge extraction pipeline (systemd, dashboard+API) | -| Files | data (CT 130) | 192.168.1.130:8888 | https://files.echo6.co | PDF library (nginx, Authentik forward auth) | +| RECON | data (VM 131) | 192.168.1.130:8420 | https://recon.echo6.co | Knowledge extraction pipeline (systemd, dashboard+API) | +| Files | data (VM 131) | 192.168.1.130:8888 | https://files.echo6.co | PDF library (nginx, Authentik forward auth) | | Samba | data | 192.168.1.240:445 | Internal | SMB file sharing — `//data/library` → /mnt/data/library (guest access) | | Matrix Synapse | Contabo | 127.0.0.1:8008 | https://matrix.echo6.co | Matrix homeserver (Docker, SSO) | | Element Web | Contabo | 127.0.0.1:8088 | https://element.echo6.co | Matrix web client (Docker) | @@ -186,18 +186,24 @@ - Share: `//data/library` → `/mnt/data/library` (browseable, read-write, guest OK, force user/group root) - Workgroup: WORKGROUP, standalone server -### data - CT 130 (192.168.1.130 / Tailscale: 100.64.0.24) +### data - VM 131 "recon-vm" (192.168.1.130 / Tailscale: 100.64.0.24) +- **Migrated from CT 130 (LXC) on 2026-04-19** +- OS: Ubuntu 24.04.4 LTS, kernel 6.8.0-110-generic +- Resources: 4 cores, 16GB RAM, 100GB disk +- Software: Docker 29.4.0, Python 3.12.3 (venv), Tailscale, nginx, sqlite3 - RECON knowledge extraction pipeline -- systemd service: `recon.service` -- Dashboard + API on port 8420 (internal) -- nginx file server on port 8888 (files.echo6.co) +- systemd services: `recon.service`, `recon-watchdog.service`, `kiwix.service` +- Dashboard + API on port 8420 (https://recon.echo6.co) +- nginx file server on port 8888 (https://files.echo6.co, Authentik forward auth) +- Kiwix-serve on port 8430 (ZIM library, 10 sources) - Install: `/opt/recon/` (Python 3, Flask, venv) -- NFS mount: pi-nas:/export/library → /mnt/library (PDF source) +- NFS mounts: pi-nas:/export/library → /mnt/library (PDF source), /mnt/nav, /mnt/kiwix - Pipeline: Extract (PyPDF2→pdftotext→Tesseract→Gemini Vision) → Enrich (Gemini) → Embed (TEI/Qdrant) - DB: SQLite (status), Qdrant on cortex:6333 (vectors) -- Backups: rsync to Contabo every 6hrs (concepts, text, DB, config) +- Backups: rsync to Contabo every 6hrs (concepts, text, DB, config), DB snapshot every 2hrs - Config: `/opt/recon/config.yaml`, keys in `/opt/recon/.env` - Docs: `/opt/recon/PROJECT-BIBLE.md` +- User: zvx (sudo, SSH key auth) ### utility - CT 106 (192.168.1.106) - IdahoMesh Headscale (https://vpn.idahomesh.com) diff --git a/runbooks/recon-operations.md b/runbooks/recon-operations.md index b1d7405..ad49e05 100644 --- a/runbooks/recon-operations.md +++ b/runbooks/recon-operations.md @@ -2,11 +2,11 @@ ## Service Info -- **Host:** recon LXC (CT 130 on data node) +- **Host:** recon-vm (VM 131 on data node) — migrated from CT 130 on 2026-04-19 - **IP:** 192.168.1.130 / 100.64.0.24 - **Install:** /opt/recon/ - **User:** zvx -- **Service:** `recon.service` (systemd) +- **Services:** `recon.service`, `recon-watchdog.service`, `kiwix.service` (systemd) ## Service Management @@ -186,4 +186,4 @@ sudo systemctl start recon --- -*Last updated: 2026-02-16 — Initial creation* +*Last updated: 2026-04-19 — Updated for CT 130 → VM 131 migration* diff --git a/runbooks/recon-service-integration.md b/runbooks/recon-service-integration.md index 6ecdfe6..607c63d 100644 --- a/runbooks/recon-service-integration.md +++ b/runbooks/recon-service-integration.md @@ -8,7 +8,7 @@ Use this when you have a service running on a remote LXC/VM that needs a web man ## Prerequisites -- A running Flask or FastAPI dashboard (e.g., RECON on CT 130, WATCHTOWER on Contabo) +- A running Flask or FastAPI dashboard (e.g., RECON on VM 131, WATCHTOWER on Contabo) - The target service running on a reachable host (LXC, VM, or bare metal) - SSH access from the dashboard host to the target host - The dashboard runs as a known user (e.g., `zvx`, `recon`, `watchtower`) @@ -421,7 +421,7 @@ lines = min(lines, 500) # Cap to prevent abuse ### RECON managing pipeline services (CT 130 dashboard → CT 110 PeerTube) ``` -DASHBOARD_HOST=192.168.1.130 (CT 130, data node) +DASHBOARD_HOST=192.168.1.130 (VM 131, data node) DASHBOARD_USER=zvx TARGET_HOST=192.168.1.170 (CT 110, media node) SERVICE_NAME=peertube @@ -453,7 +453,7 @@ Services managed: - pt-downloader (CT 110): start/stop/restart/status/logs - pt-importer (CT 110): start/stop/restart/status/logs - pt-transcoder (cortex): start/stop/restart/status/logs - - recon (CT 130): start/stop/restart/status/logs + - recon (VM 131): start/stop/restart/status/logs Each service has its own sudoers file on its target host, its own entry in SERVICE_INTEGRATIONS, and its own UI panel. @@ -461,4 +461,4 @@ its own entry in SERVICE_INTEGRATIONS, and its own UI panel. --- -*Last updated: 2026-02-17* +*Last updated: 2026-04-19 — Updated CT 130 references to VM 131*