---
type: system
name: jupiter
display_name: Jupiter
last_compiled: 2026-05-24
compiled_by: DESKTOP-0O8A1RL/claude-main
sources:
  - credentials.md
  - .claude/memory/infra_office_network.md
backlinks:
  - systems/gururmm-build
  - systems/pluto
  - systems/uranus
---

# Jupiter

## Identity
- **Hostname:** Jupiter
- **IP:** 172.16.3.20
- **Role:** Primary Unraid NAS — virsh VM host + Docker container host for ACG infrastructure
- **Location:** ACG office
- **OS:** Unraid (version not documented; presumed current)
- **Hardware:** Dell (iDRAC present — likely PowerEdge; exact model not documented)

## Specs

Not documented. iDRAC available at 172.16.1.73 (DHCP) for OOB management.

## Services

### Docker Containers

| Container | Port(s) | Notes |
|---|---|---|
| `npm` | 1880 (HTTP), 18443 (HTTPS), 7818 (admin) | Nginx Proxy Manager — handles all external reverse proxying |
| `gitea` | 3000 (HTTP), 2222 (SSH) | Internal Gitea git server; http://172.16.3.20:3000 |
| `seafile` + mysql + elasticsearch + memcached | 8082 | Seafile Pro file sync stack |

**NPM → 443 routing:** iptables PREROUTING rule on Jupiter: `dpt:443 → 172.17.0.2:443` (NPM Docker bridge IP). Persisted in `/boot/config/go` so it survives reboots.

### Virtual Machines (virsh)

| VM | IP | State | Role |
|---|---|---|---|
| ~~GuruRMM~~ | ~~172.16.3.30~~ | **decommissioned 2026-06-12** | Former GuruRMM VM — migrated to a physical box that took the .30 IP (2026-06-11); virsh domain destroyed + disk deleted 2026-06-12. No longer on Jupiter. |
| Claude-Builder (Pluto) | 172.16.3.36 | running | Windows Server 2019 — MSI + cargo builds |
| OwnCloud | 172.16.3.22 | running | OwnCloud file sync VM (cloud.acghosting.com) |
| Unifi | 172.16.3.29 | running | **UOS Server** — self-hosted UniFi OS controller (~49 sites). Rocky 9; app+Mongo in rootless podman `uosserver`. Access + DB query: [[uos-server]] |
| Windows 7 | — | shut off | — |
| Windows Server 2016 | (none — APIPA) | running | Windows guest `ACG-DWP-X-BB`; e1000 NIC `vnet8` on br0, DHCP not leasing — see Known Issues |
| Windows Server 2016_Template | — | shut off | — |

## Access
- **SSH:** `ssh root@172.16.3.20` port 22
- **Password:** `op://Infrastructure/Jupiter (Unraid Primary)/password`
- **Unraid Web UI:** http://172.16.3.20 (same password)
- **NPM Admin:** http://172.16.3.20:7818
- **iDRAC:** https://172.16.1.73 (DHCP — IP may change)
  - User: `op://Infrastructure/Jupiter (Unraid Primary)/iDRAC.iDRAC User`
  - Password: `op://Infrastructure/Jupiter (Unraid Primary)/iDRAC.iDRAC Password`
  - IPMI Key: `op://Infrastructure/Jupiter (Unraid Primary)/iDRAC.IPMI Key`
- **Vault path:** `op://Infrastructure/Jupiter (Unraid Primary)/`
- **SSH keys authorized:** claude-code@localadmin (ed25519), root@GuruSync (ed25519), guru@wsl (ed25519), guru@gururmm-build (ed25519)

## NPM Proxy Hosts (as of credentials.md — may be stale)

| External Host | Internal Target | Notes |
|---|---|---|
| emby.azcomputerguru.com | 172.16.2.99:8096 | Emby media server |
| git.azcomputerguru.com | 172.16.3.20:3000 | Gitea (Cloudflare-fronted — blocks direct curl; use http://172.16.3.20:3000 internally) |
| rmm-api.azcomputerguru.com | 172.16.3.20:3001 | **STALE** — actual GuruRMM API is on 172.16.3.30:3001; update this in NPM admin |
| unifi.azcomputerguru.com | 172.16.3.29:11443 | **UOS Server** (UniFi OS). Verified from NPM API 2026-06-15 — earlier `.28:8443` was stale. The real HTTPS port is **11443** (8443/443 are closed). See [[uos-server]]. |
| sync.azcomputerguru.com | 172.16.3.20:8082 | Seafile Pro |
| plexrequest.azcomputerguru.com | 172.16.3.31:5055 | Plex request manager |

**[ACTION REQUIRED]** Update `rmm-api.azcomputerguru.com` proxy target from `172.16.3.20:3001` → `172.16.3.30:3001` in NPM admin (http://172.16.3.20:7818).

## Gitea

- **Internal URL:** http://172.16.3.20:3000 (use this for API calls and curl — git.azcomputerguru.com is Cloudflare-fronted and blocks direct curl)
- **SSH clone:** `ssh://azcomputerguru@172.16.3.20:2222/azcomputerguru/repo.git`
- **External URL:** https://git.azcomputerguru.com (browser only)
- **API Token:** `op://Infrastructure/Gitea/API.API Token`

## Known Issues & Quirks

- **iptables PREROUTING for port 443** persists via `/boot/config/go` — if NPM routing breaks after a reboot, check this file first.
- **iDRAC IP is DHCP** (172.16.1.73) — may drift. Verify before relying on it for OOB access.
- **guruRMM API proxy stale** — see NPM table above. Fix before it causes a routing incident.
- **Post-power-failure recovery order matters** — see `.claude/POWER_FAILURE_RUNBOOK.md` for the full recovery sequence (Tailscale routes, libvirt/VMs, Seafile, NPM/DNS in order).
- **VM "Windows Server 2016" (`ACG-DWP-X-BB`) — no LAN (2026-06-07):** guest stuck on APIPA `169.254.157.152`, no DHCP lease. Host side is healthy (vnet8 bridged to br0, forwarding, receiving LAN broadcast); fault is guest-side — single e1000 NIC set to DHCP, pfSense (172.16.0.1) not leasing it. Diagnose via `virsh domifaddr 9 --source agent` and qemu guest-exec `ipconfig /all`. Fix path: `ipconfig /renew` in-guest (stuck-client case) or assign a static IP if that is the intended config. PAUSED pending Mike's DHCP-vs-static decision.

## Backlinks

- [[systems/gururmm-build]] — GuruRMM **was** a VM here (virsh domain "GuruRMM"); decommissioned 2026-06-12, now a physical box at 172.16.3.30
- [[systems/pluto]] — Claude-Builder VM hosted here (virsh domain "Claude-Builder")
- [[systems/uranus]] — secondary storage Unraid node (separate machine, not hosted here)
