Fly.io for sentinel (shared-cpu-1x, 256MB, London) and node (shared-cpu-2x, 512MB), Docker images (sentinel: distroless/cc-debian13 nonroot, node: ubuntu:24.04 with gosu privilege drop), multi-arch builds (amd64, aarch64) via buildx, GitHub Container Registry (ghcr.io/legacy3/wowlab-node, ghcr.io/legacy3/wowlab-sentinel), CI pipeline (change detection → TypeScript build → Rust build/test → multi-platform binaries → Docker → Fly.io deploy), target-specific CPU optimizations (x86-64-v2 for x86, +lse for ARM), GitHub releases with platform artifacts (tar.gz Unix, zip Windows), node self-update from GitHub releases, health checks (/status endpoint), auto-start/stop machines, auto-restart on failure.
Next steps