SPB Git

Repository Public

deployment-plan.md 2.0 KB

# Deployment plan

Deployment follows the cluster standard: the mld orchestrator on the gateway (M1M32) with a manifest, PM2 on the node, and a MacLustr Tunnel route. Nothing else on the cluster is modified.

Step Action Affects
1 Node tools: tmux, ripgrep, PostgreSQL 17 (brew service), Claude Code CLI M5M36 only (done 2026-11-09)
2 Database: role claude_remote, database claude_remote (random password, local only) M5M36
3 Directories: ~/apps/claude-remote (code, git clone), ~/claude-remote-data (0700: socket, hook token, task directories, setup token), ~/backups/claude-remote (encrypted backups), ~/workspace (project root) M5M36
4 Manifest M1M32:~/dispatch/apps/claude-remote.json: pinned to M5M36, two PM2 processes (claude-remote-runtime, claude-remote-server) + nightly backup, secrets generated on the gateway (never committed) M1M32 manifest store
5 mld stage → mld deploy claude-remote → build on node, migrations, PM2 start, local health check M5M36
6 Tunnel route https://claude.spboucher.ai → M5M36:8620 (DNS A record already points to the gateway) — only after the security test suite passes BHS64 Caddy (one route added)
7 mld adopt claude-remote → the node directory becomes the source of truth (git origin = spbgit) M1M32 git server (new bare repo)
8 Owner: read the one-time setup token on the node, create the admin account, enrol passkey/TOTP, run /login inside the first Claude session —
9 Independence test from a phone with the laptop off —

Rollback: mld retire claude-remote removes the route and the processes; data stays in ~/claude-remote-data and Postgres.

Items that need the owner's explicit approval (not done automatically):

  • authorising an SSH key of M5M36 on other nodes (remote task execution), i.e. filling CR_EXEC_HOSTS;
  • copying any credential from the laptop (MCP API keys, tokens);
  • migrating research repositories that are not already on the git server.
Files main
Menu

Theme