docs: update INFRASTRUCTURE-REFERENCE and CLAUDE.md for JARVIS VM migration

- JARVIS moved from DO to PVE1 VM 211 (10.48.200.211, 8c/16GB)
- Access: http://jarvis.orbishosting.com:1972 (FortiGate VIP)
- Stack: nginx + PHP 8.3 + MariaDB + Redis + Arc Reactor
- Ollama VM IP: 10.48.200.95 → 10.48.200.210 (Reolink owns .95)
- FusionPBX SSH now direct via Tailscale (100.74.46.120)
- DO role: websites only (JARVIS fully removed)
- Agent URLs updated: http://10.48.200.211 (LAN direct)
- DO agent uses Tailscale: http://100.77.178.42

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 04:38:02 +00:00
parent 5140573be0
commit 5cbaeda730
2 changed files with 23 additions and 32 deletions
@@ -1,5 +1,5 @@
# INFRASTRUCTURE REFERENCE — COMPLETE SYSTEM MAP
**Last Updated:** 2026-06-14
**Last Updated:** 2026-06-18
**Owner:** Myron Blair — myronblair@outlook.com
---
@@ -29,7 +29,7 @@ INTERNET
[Cloudflare CDN] ──────────────────────────────────────────────────────────────
│ (proxied DNS for public sites)
├─► [DigitalOcean 165.22.1.228] — CyberPanel/OLS — All websites + JARVIS
├─► [DigitalOcean 165.22.1.228] — CyberPanel/OLS — All websites (6 sites)
└─► [FusionPBX 134.209.72.226] — FreeSWITCH PBX (SSH via DO relay)
@@ -42,7 +42,7 @@ HOME NETWORK (FortiGate router at 10.48.200.1)
│ ├── VM 113 10.48.200.35 MediaStack (Sonarr/Radarr/qBT/Prowlarr)
│ ├── VM 118 10.48.200.18 Homebridge
│ ├── VM 120 10.48.200.110 NovaCPX hosting panel
│ ├── VM 210 10.48.200.95 Ollama (local LLM)
│ ├── VM 210 10.48.200.210 Ollama (local LLM) (local LLM)
│ └── CT110 10.48.200.19 WireGuard exit container
├─► PVE2 Proxmox 10.48.200.91 (secondary hypervisor)
@@ -73,13 +73,13 @@ FortiGate Port Forwards:
| **OS** | Ubuntu 22.04 LTS |
| **Panel** | CyberPanel (OpenLiteSpeed) |
| **SSH** | `ssh root@165.22.1.228` — password: `Gonewalk1974!@#` |
| **Purpose** | All public websites + JARVIS AI + webhook deploy system |
| **Purpose** | All public websites (6 sites) — webhook deploy for websites |
**Key Paths:**
- All sites: `/home/<domain>/public_html/`
- JARVIS: `/home/jarvis.orbishosting.com/`
- Deploy log: `/home/jarvis.orbishosting.com/logs/deploy.log`
- Watchdog log: `/home/jarvis.orbishosting.com/logs/watchdog.log`
- Deploy log: per-site (website deploys only)
- Watchdog log: `/usr/local/lsws/logs/watchdog.log`
- Infra repo: `/opt/infra`
**Services running:**
@@ -87,7 +87,7 @@ FortiGate Port Forwards:
- MySQL 8 — all site databases on localhost
- Redis — session/cache
- PHP 8.5 (`lsphp85`) — runtime for all sites
- Cron jobs: JARVIS deploy runner (every 1 min), facts collector (every 3 min), stats cache (every 5 min), watchdog (every 5 min)
- Cron jobs: website deploy runner (every 1 min), watchdog (every 5 min)
**CyberPanel Web UI:** `https://165.22.1.228:8090`
Login: `myron / Joker1974!!!`
@@ -102,7 +102,7 @@ Login: `myron / Joker1974!!!`
|-------|-------|
| **IP** | 134.209.72.226 |
| **OS** | Debian (DigitalOcean droplet) |
| **SSH** | Must relay via DO: `ssh root@165.22.1.228``ssh root@134.209.72.226` — password: `Joker1974!@#` |
| **SSH** | Direct via Tailscale: `ssh root@100.74.46.120` — password: `Joker1974!@#` |
| **Direct SSH** | Only from: 107.178.2.130 / 97.154.109.245 |
| **Purpose** | VoIP phone system — handles all inbound/outbound calls |
@@ -308,11 +308,11 @@ sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@10.48.200.90 \
### VM 210 — Ollama Local LLM (PVE1)
| Field | Value |
|-------|-------|
| **IP** | 10.48.200.95 |
| **IP** | 10.48.200.210 |
| **OS** | Ubuntu (cloud image) |
| **SSH** | `ssh myron@10.48.200.95` — password: `Joker1974!` (then `sudo`) |
| **Purpose** | Local AI inference — runs llama3.2 model for JARVIS Tier 1 chat |
| **API** | `http://10.48.200.95:11434` (Ollama REST API) |
| **API** | `http://10.48.200.210:11434` (Ollama REST API) |
| **JARVIS Agent** | ID: `ollama-ai_ubuntu` |
**JARVIS uses this as Tier 1 AI** — if Ollama is down, falls back to Groq (cloud).
@@ -372,11 +372,11 @@ All sites are at `/home/<domain>/public_html/` on DO (165.22.1.228).
---
### jarvis.orbishosting.com — JARVIS AI Dashboard
### jarvis.orbishosting.com — JARVIS AI Dashboard (MOVED TO PVE1 VM 211)
| Field | Value |
|-------|-------|
| **URL** | https://jarvis.orbishosting.com |
| **Path** | `/home/jarvis.orbishosting.com/` |
| **URL** | http://jarvis.orbishosting.com:1972 |
| **Path** | `/var/www/jarvis/ (on JARVIS VM 10.48.200.211)` |
| **GitHub** | `myronblair/jarvis` |
| **Login** | `myron / Joker1974!!!` |
| **Purpose** | Iron Man-style AI home dashboard with voice control, smart home, media, planner |
@@ -468,11 +468,11 @@ See Section 7 for full JARVIS details.
## 7. JARVIS AI SYSTEM
**URL:** https://jarvis.orbishosting.com
**Files:** `/home/jarvis.orbishosting.com/` on DO
**URL:** http://jarvis.orbishosting.com:1972
**Files:** `/var/www/jarvis/` on JARVIS VM (PVE1 VM 211 — 10.48.200.211, 8 cores, 16GB RAM)
**DB:** `jarvis_db``jarvis_user / J4rv1s_Pr0t0c0l_2026!`
**Login:** `myron / Joker1974!!!`
**Admin portal:** https://jarvis.orbishosting.com/admin
**Admin portal:** http://jarvis.orbishosting.com:1972/admin
### Architecture (end-to-end)
@@ -484,7 +484,7 @@ Voice (browser mic)
→ /api/chat.php (4-tier AI)
Tier 0.7: KB intents / planner (tasks, appointments)
Tier 1: Knowledge Base (MySQL)
Tier 1.5: Ollama (10.48.200.95:11434, llama3.2) — local LLM
Tier 1.5: Ollama (10.48.200.210:11434, llama3.2) — local LLM
Tier 2: Groq (cloud, model: compound-beta-mini)
Tier 3: Claude API (Anthropic, fallback)
→ ElevenLabs TTS → browser speaker
@@ -501,7 +501,7 @@ Webhook secret: `4c8805f0285214ff0a0602b5880270b935f36a896946c7f1`
### Agent System
Agents installed on all servers — phone home every 10s (heartbeat) / 30s (metrics).
Registration key: `f846a9aaf7ce9a61742c63c87c4186052a71d2a580c65518`
Install command: `curl -sk https://jarvis.orbishosting.com/install-agent.sh | bash -s <hostname> <linux|proxmox>`
Install command: `curl -sk http://10.48.200.211/install-agent.sh | bash -s <hostname> <linux|proxmox>`
### Self-Healing Watchdog
`/usr/local/bin/jarvis-watchdog.sh` — runs every 5 min (root cron on DO)
@@ -680,8 +680,8 @@ sshpass -p 'Joker1974!!!' ssh root@10.48.200.90 \
| phpMyAdmin (DO) | https://165.22.1.228/phpmyadmin | myron | `Joker1974!!!` |
| Proxmox PVE1 | https://orbisne.fortiddns.com:8006 | root | `Joker1974!!!` |
| Proxmox PVE2 | https://10.48.200.91:8006 | root | `Joker1974!!!` |
| JARVIS | https://jarvis.orbishosting.com | myron | `Joker1974!!!` |
| JARVIS Admin | https://jarvis.orbishosting.com/admin | myron | `Joker1974!!!` |
| JARVIS | http://jarvis.orbishosting.com:1972 | myron | `Joker1974!!!` |
| JARVIS Admin | http://jarvis.orbishosting.com:1972/admin | myron | `Joker1974!!!` |
| FusionPBX | https://fusion.orbishosting.com | admin | `fY7XP5swgtpbzrYLhkeVYkA4744` |
| Home Assistant | http://orbisne.fortiddns.com:8123 | myron | (HA password) |
| NovaCPX Admin | https://10.48.200.110:8882 | admin | `Admin2026!` |
+2 -11
View File
@@ -14,7 +14,7 @@ if (!defined('WEBHOOK_SECRET')) {
exit;
}
define('DEPLOY_QUEUE', '/tmp/jarvis-deploy-queue.txt');
define('DEPLOY_LOG', '/home/jarvis.orbishosting.com/logs/deploy.log');
define('DEPLOY_LOG, '/var/www/jarvis/logs/deploy.log');
header('Content-Type: application/json');
@@ -40,16 +40,7 @@ if ($ref !== 'refs/heads/main') {
}
$repoMap = [
'jarvis' => '/home/jarvis.orbishosting.com',
'tomsjavajive' => '/home/tomsjavajive.com/public_html',
'epictravelexpeditions' => '/home/epictravelexpeditions.com/public_html',
'parkerslingshot' => '/home/epictravelexpeditions.com/parkerslingshot',
'parkerslingshotrentals' => '/home/parkerslingshotrentals.com/public_html',
'orbishosting' => '/home/orbishosting.com/public_html',
'orbis-hosting-portal' => '/home/orbis.orbishosting.com/public_html',
'tomtomgames' => '/home/tomtomgames.com/public_html',
'infra' => '/opt/infra',
'novacpx' => '__NOVACPX_VM__',
'jarvis' => '/var/www/jarvis',
];
if (!isset($repoMap[$repo])) {