---
name: kitsubito-linux-rig
description: "How to reach + build + int-verify on the kitsubito Linux systemd rig (ssh, no-GitHub-origin bundle transfer, live spt-daemon user unit)"
metadata: 
  node_type: memory
  type: reference
  originSessionId: 183adaa7-7665-46dd-bb77-a1c8691f9f3c
---

Linux systemd rig for spt-core int verification (e.g. daemon-lifecycle REQ-DAEMON-6/7/8).

- **Access:** `ssh reavus@kitsubito` — key auth, no password prompt. sudo password is available from the user on request; `--user` systemctl ops (start/stop/is-active/is-enabled spt-daemon) need NO sudo, so most int work needs none.
- **Toolchain:** cargo 1.96 at `~/.cargo/bin/cargo` (NOT on the non-login PATH — call it by full path). Only `git` is on PATH by default.
- **Live infra:** systemd USER unit `spt-daemon.service` (`~/.config/systemd/user/`), normally active+enabled, `ExecStart=~/.local/bin/spt daemon run`, no `Environment=SPT_HOME` → default home → a freshly-built binary shares the same broker socket and can ping the live daemon cross-binary.
- **Deploy checkout `~/spt-core-deploy`:** its `origin` is the LOCAL runner workspace (`~/actions-runner/_work/...`), NOT GitHub. So unpushed dev-machine commits reach it ONLY via `git bundle` (create `base..tip` locally → scp to /tmp → `git fetch /tmp/x.bundle ...` → `git checkout <sha>`). Build into the scratch checkout's `target/debug/spt`; the installed `~/.local/bin/spt` stays untouched (zero live contamination).
- **Restore after:** put the deploy checkout back on its branch (was `dev-freeform@78c4a78`), delete the bundle ref + /tmp file, and ensure `spt-daemon` ends active+enabled.

Transfer→build→verify→restore pattern proved on 2026-06-08 (see [[daemon-lifecycle-shipped]] / DAEMON-LIFECYCLE-VERIFICATION.md). Related: [[gravity-deploy-procedure]] (retired host), [[ci-selfhost-migration]].
