mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 17:50:23 -05:00
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:
@@ -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
@@ -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])) {
|
||||
|
||||
Reference in New Issue
Block a user