Two sweeps: 1. .30 is a PHYSICAL box (Lenovo ThinkCentre M83, Ubuntu 26.04), not a Jupiter VM — the VM was decommissioned 2026-06-12. Fixed inventory tables and the gururmm-build system page (overview, index, jupiter, gururmm-build, POWER_FAILURE_RUNBOOK). 2. Windows build chain: Beast (GURU-BEAST-ROG, tailnet 100.101.122.4, i9-14900K) is PRIMARY; Pluto (172.16.3.36) is FALLBACK. Verified against build-windows.sh (`attempt_build beast || attempt_build pluto`). Fixed overview, index, projects/gururmm (build-host table + flow + host detail), systems/pluto, and the reference_pluto_build_server memory. Submodule advanced: build-pipeline doc comments corrected to match.
5.8 KiB
5.8 KiB
type, name, display_name, last_compiled, compiled_by, sources, backlinks
| type | name | display_name | last_compiled | compiled_by | sources | backlinks | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| system | pluto | Pluto (Claude-Builder) | 2026-05-24 | DESKTOP-0O8A1RL/claude-main |
|
|
Pluto (Claude-Builder)
Identity
- Hostname: Pluto / Claude-Builder
- IP: 172.16.3.36
- Role: Windows MSVC build server. For GuruRMM Windows agent + WiX MSI builds it is now the FALLBACK — Beast (GURU-BEAST-ROG, tailnet 100.101.122.4) is PRIMARY, and
build-windows.shonly falls through to Pluto if Beast is unreachable/down or its build fails. Still produces the (2026-05-29) GuruConnect Windows agent and hosts a Gitea Actions runner for guru-connect's native MSVC builds. - RMM agent identity: enrolled in GuruRMM as hostname PLUTO (client "AZ Computer Guru"). Drive it via
/rmm(resolve PLUTO → agent id at runtime) when a workstation SSH key isn't authorized. There is no dedicatedplutovault entry — don't search for one. - Location: VM on Jupiter (172.16.3.20), Unraid/virsh VM name "Claude-Builder" (= PLUTO = 172.16.3.36, same machine)
- OS: Windows Server 2019 Standard
- SSH user: Administrator
Specs
Windows Server 2019 VM. Exact vCPU/vRAM allocation managed via virsh on Jupiter — not documented separately.
Services
Pluto is not a general-purpose server. It has no web services, no Claude Code, no vault, no coord API. It exists solely to run builds when build-windows.sh SSHes in.
Access
- SSH from gururmm-build (172.16.3.30):
ssh -o StrictHostKeyChecking=yes \ -o UserKnownHostsFile=/opt/gururmm/pluto_known_hosts \ Administrator@172.16.3.36 - Known-hosts file:
/opt/gururmm/pluto_known_hosts— three pinned keys (RSA, ECDSA, ED25519) for 172.16.3.36. Never useStrictHostKeyChecking=no— a MITM would inject malicious binaries into MSI artifacts. - To update pinned keys (e.g. after OS reinstall):
ssh-keyscan 172.16.3.36 > /opt/gururmm/pluto_known_hosts - SSH from DESKTOP-0O8A1RL: Uses a different network path than from gururmm-build — one failing does not imply the other fails.
- From a workstation with no authorized key (e.g. GURU-5070): SSH will be refused (
Permission denied (publickey)). Use the GuruRMM agent instead —/rmm→ run PowerShell on PLUTO — to inspect or configure the box, or to add a workstation pubkey toadministrators_authorized_keys.
Build Tools
| Tool | Path |
|---|---|
| cargo (Rust stable 1.95.0) | C:\Users\Administrator\.cargo\bin\cargo.exe |
| cargo (Rust 1.77, legacy) | Pinned for legacy Windows 7/Vista targets; used with --ignore-rust-version |
| rustup | C:\Users\Administrator\.cargo\bin\rustup.exe |
| WiX 4 | C:\Users\Administrator\.dotnet\tools\wix.exe |
| sccache | C:\sccache\ — compiler cache; near-instant rebuilds when source unchanged |
| Git | Standard PATH |
| Gitea clone | C:\gururmm\ — pulled from https://azcomputerguru@git.azcomputerguru.com/azcomputerguru/gururmm.git |
What Pluto Builds (in order, per trigger)
1. git pull (build-windows.sh does this via SSH before cargo)
2. cargo build --release --target x86_64-pc-windows-msvc → stable x64
3. cargo build --features debug-agent --target x86_64-pc-windows-msvc → debug x64
4. cargo build --release --target i686-pc-windows-msvc → stable x86
5. cargo build --release --target x86_64-pc-windows-msvc (legacy profile, --ignore-rust-version) → legacy x64
6. cargo build --release --target i686-pc-windows-msvc (legacy profile, --ignore-rust-version) → legacy x86
7. wix build → GuruRMM-<version>-x64.msi
All five cargo runs are sequential. MSI is built after all binaries complete.
Output Artifacts (on Pluto)
| Artifact | Path |
|---|---|
| Agent EXE (x64) | C:\gururmm\target\x86_64-pc-windows-msvc\release\gururmm-agent.exe |
| Agent EXE (x86) | C:\gururmm\target\i686-pc-windows-msvc\release\gururmm-agent.exe |
| Tray EXE | C:\gururmm\target\x86_64-pc-windows-msvc\release\gururmm-tray.exe |
| MSI | C:\gururmm\target\wix\GuruRMM-<version>-x64.msi |
build-windows.sh SCPs these to gururmm-build's /var/www/gururmm/downloads/ after build completes.
Build Trigger Rules
A Pluto build is initiated only when:
- A push to
mainhits the Gitea webhook (172.16.3.30:9000) build-shared.shsucceeds (version bump + git sync)- The diff between new SHA and
last-built-commit-windowsincludes changes underagent/(excludingagent/Cargo.lock)
If only server/, dashboard/, or docs changed — Pluto is not contacted.
Windows build lock: /var/run/gururmm-build-windows.lock on gururmm-build prevents concurrent builds.
Known Issues & Quirks
- sccache makes short builds look like failures — a 1-second Windows build is normal when
agent/source hasn't changed since the last successful build. Do not interpret speed as failure. - Do not SSH to Pluto manually to trigger builds — all builds go through the Gitea webhook pipeline. Manual SSH is for diagnostics only.
- If Pluto appears unreachable from DESKTOP — verify from gururmm-build (172.16.3.30) first. Different network paths; DESKTOP is not on the same LAN segment.
- WiX MSI cannot be built on Linux — WiX requires
msi.dll. This is the sole reason Pluto exists. path.find('\\')in#[cfg(windows)]files — a literal backslash in a char literal compiles silently on Linux but fails with "unterminated char literal" on Pluto's MSVC build. Use'\\\\'instead.
Backlinks
- projects/gururmm — Pluto is the exclusive Windows MSI build machine for GuruRMM
- systems/jupiter — Pluto is a virsh VM hosted on Jupiter
- systems/gururmm-build — build-windows.sh on gururmm-build SSHes here to trigger builds