Tags: smweber/devvm
Tags
bootstrap: create the dev user on root-only remote-managed hosts A fresh cloud VM (e.g. Hetzner) is reachable only as root, but the remote-managed path assumed the ssh login user was already an unprivileged dev user with NOPASSWD sudo — only smol ever created one. So the bootstrap-hook, key seeding, and repos all landed in /root, and harden failed its authorized_keys fail-safe (or, had it passed, would have written PermitRootLogin no + AllowUsers root: a lockout). bootstrap now runs EnsureDevUser first on remote-managed: if the login is root, create dev (home + bash + NOPASSWD sudoers, mirroring the smol prereqs), install sudo if missing, copy root's authorized_keys to dev, and rewrite the conf's ssh_host to dev@… so this run and everything after connects as dev. Harden pins AllowUsers to the actual connection user (getent for the home dir) and refuses to run as root. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
status: add --plain machine-readable listing Emit one tab-separated 'name<TAB>backend<TAB>state' row per machine, with no headers or grouping, so scripts can enumerate machines (e.g. every running smol VM) without scraping the human-formatted table. Reuses gatherRows, so it reflects the same derived states as the normal view. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add release.sh: cross-compile host binaries for GitHub releases So bootstrap can install devvm without a Go toolchain (darwin/linux × arm64/amd64). Each binary embeds the linux guest agents and is self-contained. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>