# Server Reference Card ## SSH Patterns ```bash # DigitalOcean (websites only — JARVIS no longer here) sshpass -p 'Gonewalk1974!@#' ssh -o StrictHostKeyChecking=no root@165.22.1.228 'cmd' # JARVIS VM (PVE1 VM 211) sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@10.48.200.211 'cmd' # PVE1 via FortiGate DDNS (survives IP changes) sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@orbisne.fortiddns.com 'cmd' # PVE1 direct (local network only) sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@10.48.200.90 'cmd' # PVE2 (local only) sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@10.48.200.91 'cmd' # FusionPBX (must relay via DO — port 22 firewalled from internet) sshpass -p 'Gonewalk1974!@#' ssh -o StrictHostKeyChecking=no root@165.22.1.228 \ 'sshpass -p "Joker1974!@#" ssh -o StrictHostKeyChecking=no root@134.209.72.226 "cmd"' # NovaCPX (direct — PVE1 hop broken) sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@10.48.200.110 'cmd' # MediaStack (SSH key auth) ssh -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa root@10.48.200.35 'cmd' # Local VMs (myron user + sudo, password Joker1974!) sshpass -p 'Joker1974!' ssh -o StrictHostKeyChecking=no myron@10.48.200.18 'sudo cmd' # Run command inside a Proxmox VM sshpass -p 'Joker1974!!!' ssh -o StrictHostKeyChecking=no root@10.48.200.90 \ 'qm guest exec -- bash -c "cmd"' ``` **Password order to try if first fails:** `Joker1974!@#` → `Joker1974!!!` → `Joker1974!` ## Server Map | Host | IP | User | Password | Purpose | |------|----|------|----------|---------| | DO | 165.22.1.228 | root | Gonewalk1974!@# | Websites (CyberPanel/OLS) | | JARVIS VM | 10.48.200.211 | root | Joker1974!!! | JARVIS AI — PVE1 VM 211 | | NPM | 10.48.200.200 | — | — | Nginx Proxy Manager (Docker) | | PVE1 | orbisne.fortiddns.com (10.48.200.90) | root | Joker1974!!! | Primary hypervisor | | PVE2 | 10.48.200.91 | root | Joker1974!!! | Secondary hypervisor | | FusionPBX | 134.209.72.226 | root | Joker1974!@# | FreeSWITCH PBX | | NovaCPX | 10.48.200.110 | root | Joker1974!!! | Hosting panel — PVE1 VM 120 | | MediaStack | 10.48.200.35 | root | (SSH key) | Sonarr/Radarr/qBit — PVE1 VM 103 | | HomeAssistant | 10.48.200.97 | — | — | HA VM 109 (web terminal only) | | Homebridge | 10.48.200.18 | myron | Joker1974! | PVE1 VM 118 | | Jellyfin | 10.48.200.33 | myron | Joker1974! | PVE1 VM 112 | | Ollama | 10.48.200.210 | myron | Joker1974! | LLM VM 106, port 11434 | | NetworkBackup | 10.48.200.99 | myron | Joker1974! | PVE2 VM 302 | | WireGuard CT110 | 10.48.200.67 | — | — | VPN kill-switch for MediaStack | ## Proxmox API ```bash # Accessible from anywhere via FortiGate DDNS (port 8006 forwarded) curl -sk "https://orbisne.fortiddns.com:8006/api2/json/..." \ -H "Authorization: PVEAPIToken=root@pam!jarvis=c45b5feb-f9a9-445d-a626-14fbb959f78b" # Cluster API — gets VMs from BOTH PVE1 and PVE2 GET /api2/json/cluster/resources?type=vm ``` ## Key Paths on JARVIS VM (10.48.200.211) ``` /var/www/jarvis/ — JARVIS app root /var/www/jarvis/public_html/ — web root (index.html, api.php, admin/) /var/www/jarvis/api/ — backend (config.php, endpoints/, lib/) /var/www/jarvis/deploy/ — Arc Reactor source (reactor.py) /opt/jarvis-arc/reactor.py — Arc Reactor daemon /var/backups/jarvis/ — daily backups (tar.gz, 7-day retention) /usr/local/bin/jarvis-backup.sh — backup script ``` ## Key Paths on DO (165.22.1.228) ``` /home/tomsjavajive.com/public_html/ — Tom's Java Jive /home/epictravelexpeditions.com/public_html/ — Epic Travel /home/parkerslingshotrentals.com/public_html/ — Parker Slingshot /home/orbishosting.com/public_html/ — Orbis Hosting /home/orbis.orbishosting.com/public_html/ — Orbis Portal /home/tomtomgames.com/public_html/ — TomTom Games ``` ## PHP / OLS Notes (DO server) - Run scripts: `/usr/local/lsws/lsphp85/bin/lsphp /path/to/script.php` - Syntax check: `php8.3 -l file.php` (lsphp segfaults on -l) - Web server: OpenLiteSpeed (`lshttpd`), NOT apache/nginx