Skip to content

feat: add deploy-rs for automated NixOS deployments - #360

Merged
stackptr merged 2 commits into
mainfrom
feat/deploy-rs
Mar 11, 2026
Merged

stackptr merged 2 commits into
mainfrom
feat/deploy-rs

Conversation

@stackptr

@stackptr stackptr commented Mar 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Adds deploy-rs as a flake input with deploy nodes for glyph, spore, and zeta
  • Creates a GitHub Actions deploy workflow that runs after CI passes on main (also supports manual dispatch)
  • Adds a dedicated deploy SSH key authorized for root on all NixOS hosts
  • Uses Tailscale GitHub Action for ephemeral tailnet connectivity from GHA runners
  • Builds on GHA runners with Attic cache (remoteBuild = false), avoiding spore's memory constraints
  • Magic rollback enabled by default for safe activations

Required setup before merging

  • Add GitHub secret DEPLOY_SSH_KEY (ed25519 private key)
  • Add GitHub secrets TS_OAUTH_CLIENT_ID and TS_OAUTH_SECRET (Tailscale OAuth client)
  • Deploy the SSH key to hosts first (the keys.deploy change in ssh.nix needs to be applied manually to at least one host before the first automated deploy)

Test plan

  • Verify nix flake check passes in CI
  • Verify nix eval .#deploy.nodes returns all three hosts
  • After secrets are configured, trigger a manual workflow_dispatch deploy
  • Confirm each host receives the new generation and activation succeeds
  • Verify magic rollback works by testing with a deliberately broken config (optional)

🤖 Generated with Claude Code

Integrates deploy-rs to enable push-based deployments to glyph, spore,
and zeta after CI passes on main. Uses Tailscale for connectivity and
Attic cache for pre-built closures. Magic rollback is enabled for safety.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
nix flake check evaluates all flake outputs across all systems,
causing cross-platform build failures (e.g. aarch64-linux derivations
on x86_64-linux runners). The per-host build step already validates
each configuration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@stackptr
stackptr merged commit be19679 into main Mar 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant