--- name: Pluto Build Server description: General-purpose Windows build VM — hostname PLUTO / Unraid VM "Claude-Builder" / 172.16.3.36. For any EXE needing native Windows MSVC compilation (utilities, Howard's tools, GuruRMM + GuruConnect agents). Drive via /rmm (agent enrolls as PLUTO) when SSH key isn't authorized. type: reference --- Pluto is a **Windows Server 2019** VM on Jupiter (Unraid). The **general-purpose Windows build machine** for any project needing a native Windows executable — not just GuruRMM. ## Identity - **Hostname:** PLUTO - **Unraid VM name:** `Claude-Builder` — same machine as PLUTO / 172.16.3.36. There is **no dedicated `pluto` vault entry** — credentials for Administrator are in SOPS (search the vault for "pluto" if needed). - **Static IP:** 172.16.3.36 (confirmed static 2026-04-19) ## Access - **SSH (preferred):** `ssh -i ~/.ssh/id_ed25519 Administrator@172.16.3.36` — key auth only. - **Authorized keys (verified via RMM 2026-05-26):** `gururmm-build@gururmm-server` and `guru@gururmm-build` (the build server's keys), in both `C:\ProgramData\ssh\administrators_authorized_keys` and `Administrator\.ssh\authorized_keys`. The retired `guru@DESKTOP-0O8A1RL` key has been rotated out. NO personal-workstation key (e.g. GURU-5070) is currently authorized — add the workstation's pubkey to `administrators_authorized_keys` if you need direct SSH. - **Fallback when SSH key isn't authorized:** PLUTO runs a GuruRMM agent (client "AZ Computer Guru"). Use `/rmm` — resolve hostname **PLUTO** → agent id at runtime (IDs change on re-enroll; do not hardcode) — to run PowerShell on it. - **When SSH fails:** check Jupiter's VM console first (the VM, not the physical host). ### `administrators_authorized_keys` gotcha The file must be **ASCII-encoded** with `icacls /inheritance:r` set. PowerShell `>` writes UTF-16 BOM and silently breaks SSH key auth. Write keys with: ```powershell [System.IO.File]::WriteAllText('C:\ProgramData\ssh\administrators_authorized_keys', $keyContent, [System.Text.Encoding]::ASCII) ``` ## Installed Toolchain - **Rust:** stable-x86_64-pc-windows-msvc (rustup at `C:\Users\Administrator\.cargo\bin`) - **VS Build Tools:** `Microsoft.VisualStudio.Workload.VCTools` (MSVC linker, CRT, Windows SDK) - **WiX 4:** for MSI builds - **Code signing:** Azure Trusted Signing (via `signtool`) - **Git:** v2.47.1.windows.2 - **OpenSSH:** Win32-OpenSSH, sshd set to Automatic startup ## Use Cases Native Windows MSVC builds — produces `.exe` with no MinGW runtime dependency. Examples: - Internal utilities and one-off compiled scripts - Howard's tech tools (MasterBooter, Slint GUI apps) - GuruRMM Windows agent variants (amd64, x86, legacy, debug) and MSI packaging - Anything using Windows-only APIs or needing `signtool` signing **Note:** Routine GuruRMM agent builds are automated on the Linux server (172.16.3.30) via MinGW + jsign. Use Pluto for MSVC-specific builds or one-off tooling. ## Directory Layout - `C:\builds\` — general project builds (subdirectory per project) - `C:\gururmm\` — GuruRMM repo clone ## Typical Workflow ```bash ssh -i ~/.ssh/id_ed25519 Administrator@172.16.3.36 git clone https://azcomputerguru:@git.azcomputerguru.com/azcomputerguru/.git C:\builds\ cd C:\builds\ cargo build --release # From workstation: scp -i ~/.ssh/id_ed25519 Administrator@172.16.3.36:"C:/builds//target/release/.exe" ./ ``` ## GuruRMM agent on PLUTO Historically runs old versions (0.6.3 as of 2026-05-15). Update it after any Pluto maintenance. ## Not Neptune Neptune is a separate server (email/web hosting). Pluto is for builds only.