4.6 KiB
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 | Connecting to any machine, SSH patterns, credentials, VM map |
| jarvis.md | Working on JARVIS AI dashboard, API, chat, agents |
| streamhoard.md | Working on the media server / *arr stack / VPN / Portainer / MSP360 backup on CT104 |
| voip.md | FusionPBX, SignalWire, landline/FXO, SIP registration, phones |
| sites.md | Working on any website, deploys, DBs, email |
| gotchas.md | Before running any command — critical quirks |
| 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.comMSP 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.comand 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 GitHubmaster→ 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 saykinoin places, cosmetic only) athttp://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).