rig.yaml. Ordinary source deployments create managed app releases. For a runnable first project, follow Deploy your first app.
Prerequisites
Install the v0.13 CLI, runrig login, and confirm your app has install/start commands, a listening port, and an HTTP health endpoint. Use relative paths and put mutable data outside the managed release directory.
1. Create the manifest
Runrig init in your project, then review the generated values. The app name comes from --name or the directory name and is converted to lowercase letters, digits, and dashes, so the deploy accepts it; rig init --name "My App" writes name: my-app. Declare workspace.deployment.strategy: incremental for app releases. Check the canonical manifest reference before deployment.
2. Deploy
.rig.lock so later deployments retain project identity and workspace bindings.
3. Check the result
rig app-release logs --workspace my-project --release <RELEASE_ID>.
4. Deploy a change
Runrig deploy from the same directory. Incremental activation briefly restarts affected services without replacing the workspace filesystem. Use the development loop, staging, or app rollback.
Configure a GitHub repository in the console
Follow Deploy from GitHub. The console retains a reviewed deployment strategy; a manifest strategy must match that selection.How rig deploy resolves a workspace
An explicit--workspace targets a name or ID. Otherwise the CLI reuses the workspace binding in .rig.lock or creates a new workspace. Inspect bindings before reusing a checkout for another environment; specify the target explicitly when uncertain.
Inside a workspace, rig deploy deploys into that workspace. It ignores .rig.lock bindings, never creates a workspace, and refuses options that would clone, re-image, or replace the workspace it runs in; see deploying from inside a workspace.
The rig.yaml contract
The field reference now lives at rig.yaml. Keep a single canonical manifest per project.Single-app shape
Putname, port, start, and other app fields at the root. See application fields.
Multi-app shape
Use a name-keyedapps map with a path for each local app. Do not mix root service fields with apps. Follow multi-app projects.
The health contract
Implement a successful HTTP readiness endpoint and declare its path/timeout. See health checks. Incremental service releases currently require HTTP.Deploy modes
Choose explicitly between app releases and workspace images. See deployment strategy.Standard deploy
The v0.13 default source flow is an incremental app release, not a filesystem overlay. See the development loop.Reproducible deploy
reproducible: true selects image deployment when no strategy is explicit. Use reproducible builds.
build: is always a command
build: npm run build is valid; Dockerfile/image mapping forms are not. See commands.
Local source: freeze dependencies and sync code
This image workflow is described in reproducible builds. Incremental deployment instead prepares code in managed release directories.Git source: deploy the resolved commit
Git source uses the resolved revision; uncommitted local files are not a Git deployment input. See source fields and GitHub Actions.Pre-warm the image with --build-only
Run rig deploy --strategy image --build-only for an image build without deployment. See build caching.