Documentation Index
Fetch the complete documentation index at: https://docs.stacyide.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Phase 4 Production Deployment Release Notes
Date: 2026-05-08 Branch:phase-4-production-deployment
Summary
Phase 4 starts turning the production control-plane work from earlier phases into repeatable shipping and deployment workflows. This checkpoint adds GitHub Actions CI coverage plus operator-facing deployment templates and runbooks for single-node production installations. The goal of this phase is to make StacyVM easier to validate, release, and run outside a developer laptop while keeping host-specific runtime conformance explicit.What Changed
Continuous Integration
- Added a GitHub Actions workflow for core project verification.
- CI now validates:
- Go tests across the repository.
- CLI build.
- Swagger/OpenAPI drift.
- Web dashboard production build.
- TypeScript SDK build.
- Python SDK package install, compile, and import.
- Stabilized the Swagger drift check for cold CI runners by downloading Go modules before invoking
swag.
Production Deployment Templates
- Added
deploy/docker-compose.ymlfor a production-oriented Docker provider deployment with Traefik live-preview routing. - Added
deploy/stacyvm.production.yamlwith production defaults for:- API auth.
- API rate limiting.
- sandbox caps and queue backpressure.
- JSON logging.
- persistent SQLite state.
- Docker as the default provider.
- Added Compose and systemd environment templates:
deploy/.env.exampledeploy/stacyvm.env.example
- Added
deploy/stacyvm.servicefor binary-based Linux/systemd installs.
Release Automation
- Added a release workflow for tag-driven and manually-dispatched releases.
- Release automation builds static Linux binary artifacts for
amd64andarm64. - Release automation publishes multi-arch container images to
ghcr.io/stacyos/stacyvm. - Docker image builds now accept an explicit
VERSIONbuild argument. - Release artifacts now build into
dist/instead of the repository root. - Added
.dockerignoreto keep local build outputs and dependency directories out of release image contexts.
Deployment Runbook
- Added
docs/deployment.mdcovering:- host requirements.
- Docker Compose deployment.
- systemd deployment.
- health, readiness, liveness, and Prometheus endpoints.
- reverse proxy expectations.
- SQLite backup and restore basics.
- upgrade procedure.
- Docker, Firecracker, and PRoot provider notes.
- Linked the deployment guide from the README.
- Added
scripts/smoke-deployment.shfor liveness, health, readiness, and Prometheus deployment probes. - Added
docs/runtime-conformance.mdwith host requirements and signoff checks for Docker, gVisor, Kata, Firecracker, PRoot, E2B, and custom providers. - Registered the mock provider in
stacyvm servewhenproviders.mock.enabledis set, giving operators and CI a no-Docker smoke path. - Validated the production Compose template with StacyVM, Traefik, Docker provider readiness, API smoke probes, and a port
3000live-preview route.
Code Changes By Area
CI
.github/workflows/ci.yml- Adds repository verification jobs for Go, Swagger, web, and SDKs.
- Opts into Node 24-based JavaScript actions to address the GitHub Actions Node 20 deprecation warning.
- Runs a mock-provider deployment smoke job against the production smoke script.
.github/workflows/release.yml- Adds binary and container image release automation.
scripts/check-swagger.sh- Downloads modules before generating docs in a temporary workspace.
scripts/ci-smoke-deployment.sh- Starts StacyVM with the mock provider and runs deployment smoke probes in CI.
cmd/stacyvm/cmd_serve.go- Registers the mock provider when enabled in config.
Deployment
deploy/docker-compose.yml- Adds a reusable production Compose template.
- Allows the Traefik host port to be overridden for smoke runs.
deploy/stacyvm.production.yaml- Adds a production baseline config.
deploy/stacyvm.service- Adds a systemd unit for running the StacyVM binary.
deploy/.env.exampleanddeploy/stacyvm.env.example- Add environment templates for Compose and systemd.
Dockerfile- Adds BuildKit platform args and explicit version injection for release image publishing.
Makefile- Moves release artifacts into
dist/and keeps checksums with the artifacts.
- Moves release artifacts into
.dockerignore- Excludes build outputs, local dependency directories, and local state files from Docker build contexts.
scripts/smoke-deployment.sh- Adds a portable post-deploy smoke test for live, health, readiness, and Prometheus metrics endpoints.
Docs
docs/deployment.md- Adds the deployment guide and operator runbook.
docs/releasing.md- Adds release workflow and GHCR publishing instructions.
docs/runtime-conformance.md- Adds provider/runtime production signoff expectations.
README.md- Links the deployment guide from navigation and configuration docs.
CHANGELOG.md- Adds this Phase 4 checkpoint entry.
Verification
The following checks passed during this checkpoint:Platform Notes
- Docker Compose validation does not require daemon access, but runtime sandbox conformance still requires Docker daemon access on the host.
- Firecracker remains Linux/KVM-gated and should be rolled out only after host conformance checks pass.
- PRoot remains gated on a real
prootbinary and a rootfs with the expected sandbox tooling.
Phase 4 Closeout
Phase 4 implementation is complete. Release automation, container publishing workflow, deployment smoke testing, production deployment templates, CI coverage, and runtime conformance documentation are in place. The remaining work is external release/platform operation:- Trigger a real versioned release run when the project is ready to publish binaries and the GHCR image.
- Collect real-host runtime signoffs for optional host-gated runtimes such as gVisor, Kata, Firecracker, and PRoot.

