# AI Context Index — Myron Blair Home Lab / MSP **Load order for a new session:** Read this file first, then load the specific topic file for the task at hand. This repo is meant to be handed to *any* AI assistant (not just Claude) to resume full context on this environment. ## Topic Files | File | Use When | |------|----------| | [servers.md](servers.md) | Connecting to any machine, SSH patterns, credentials, VM map | | [jarvis.md](jarvis.md) | Working on JARVIS AI dashboard, API, chat, agents | | [streamhoard.md](streamhoard.md) | Working on the media server / *arr stack / VPN / Portainer / MSP360 backup on CT104 | | [voip.md](voip.md) | FusionPBX, SignalWire, landline/FXO, SIP registration, phones | | [sites.md](sites.md) | Working on any website, deploys, DBs, email | | [gotchas.md](gotchas.md) | Before running any command — critical quirks | | [reference.md](reference.md) | Repo inventory notes, assistant hard limits, ZeroTraceGPT IQ, payments migration status | ## Who this is for Myron Blair (`myronblair@outlook.com` / `myronblair@gmail.com`). Runs a home lab + small MSP operation: Proxmox cluster, several VMs/LXCs, self-hosted AI (JARVIS + Ollama), VoIP (FusionPBX on-prem), a Docker-based media stack, and public client websites on DigitalOcean. Comfortable with Linux sysadmin, PHP, Python, bash, git, systemd — has deep familiarity with his own infra but won't remember every credential/IP off the top of his head, so don't assume he'll catch an error in a recalled detail. **Working style:** wants terse responses — state results, not intentions ("Let me..."), no trailing recaps of what was just done. For any server-side action triggered from an admin UI (JARVIS, etc.), use a live log popup pattern, not a toast/confirm dialog (see gotchas.md). Pushing to a repo's default branch (master/main) needs an explicit branch-named confirmation, not a generic "yes." ## 30-Second Overview **No local codebase for most work** — it happens via SSH to remote servers/VMs and `git push` to GitHub (several repos have auto-deploy webhooks). ### Infrastructure map - **DO (165.22.1.228)** — DigitalOcean VPS, CyberPanel/OpenLiteSpeed. Hosts client/personal websites. NOT JARVIS, NOT FusionPBX (both on-prem). - **PVE1 (`orbisne.fortiddns.com` / 10.48.200.90)** — Proxmox primary hypervisor. Home of JARVIS, StreamHoard, NovaCPX, Ollama, FusionPBX, Home Assistant, Homebridge, and the NAS-mount passthrough for all of the above. - **PVE2 (10.48.200.91)** — Proxmox secondary hypervisor, 1 VM (NetworkBackup). - **JARVIS VM 211 (10.48.200.211)** — the JARVIS AI dashboard/agent-monitoring platform. nginx/PHP8.3/MariaDB/Redis/Arc Reactor. - **CT104 "StreamHoard" (10.48.200.104)** — media server: custom Netflix-style app + Sonarr/Radarr/Prowlarr/qBittorrent (all VPN'd via gluetun/NordVPN) + Portainer + MSP360 backup, all in Docker Compose. - **NovaCPX VM120 (10.48.200.110)** — custom hosting control panel; also serves the `web.orbishosting.com` MSP dashboard. - **FusionPBX VM130 (10.48.200.130)** — FreeSWITCH PBX. - **Synology NAS (10.48.200.249)** — primary media + MSP360 backup storage, own DSM reverse proxy, Gitea. - **NPM (10.48.200.200)** — Nginx Proxy Manager, terminates TLS for `jarvis.orbishosting.com` and a few others. - **FortiGate (10.48.200.1)** — router/firewall. Admin GUI is on **port 9443**, not 443 (redirects there). `admin` / `Joker1974!!!`. ### Key systems - **JARVIS** — Iron Man-style AI dashboard at `https://jarvis.orbishosting.com`, agent monitoring/chat/network-scan/admin. Auto-deploy: push to GitHub `master` → webhook → pulls into `/var/www/jarvis/` within ~1 min. - **StreamHoard** — self-hosted Netflix-style media app (repo `kino-app`, branded "StreamHoard" in the UI — internal names still say `kino` in places, cosmetic only) at `http://10.48.200.104:8080`. - **web.orbishosting.com** — personal MSP links dashboard (repo `web-dashboard`), auto-deploys via webhook on VM110. - **Gitea** (`gitea.orbishosting.com`, on the NAS) mirrors every GitHub repo one-way (GitHub → Gitea). 5 repos exist Gitea-only by design (never pushed to GitHub — they hold real secrets): `fortigate-config`, `infra-private`, `jarvis-secrets`, `msp360-config`, `proxmox-secrets`. ### Copyright / attribution standard Every operational repo (kino-app, jarvis, web-dashboard, chucko, and the DO-server client sites) has a `NOTICE` file — "Property of TomTom Enterprises." Commits to these repos must not include AI-authorship trailers (no `Co-Authored-By: Claude` etc.). This does not apply to genuine product functionality that happens to call an AI API (e.g. JARVIS's own Claude integration is real functionality, not attribution, and stays as-is).