Choose CapRover
Select CapRover under Hosting when generating a project. Your download includes .github/workflows/deploy.yml, configured for the app name derived from your project slug.
The workflow builds a Docker image, publishes it to GitHub Container Registry, and deploys it to CapRover on pushes to main. Run the checks in your generated AGENTS.md before pushing: the deployment workflow does not run tests.
Set up deployment
- Create a CapRover app matching your project slug. Enable its App Token under Deployment.
- Add your domain, enable HTTPS, and force HTTPS.
- Add the GitHub repository secrets
CAPROVER_SERVER(your captain URL) andAPP_TOKEN(the app token). - Give CapRover pull access to GitHub Container Registry if your image package is private.
- Configure
DATABASE_URLandSITE_URLin the app's runtime environment. SetSITE_URLto your public HTTPS origin. Add your Sentry or PostHog configuration if enabled.
Optional worker app
Every generated project runs background jobs inside
the web app by default. The generated workflow can also deploy the same image
to a second CapRover app that only runs jobs: create an app named after your
slug with a -worker suffix, give it the web app's environment plus
JOBS_WORKER=only, and add its app token as the WORKER_APP_TOKEN repository
secret. The workflow deploys the worker whenever that secret exists; the
project's own CapRover guide walks through it and explains when to switch the
web app to JOBS_WORKER=false.
Verify your release
Set the GitHub repository variable PRODUCTION_URL to your public origin. This enables the workflow's rollout check: /healthz must succeed and the x-deployment-revision header must match the pushed commit SHA.
Push your code to main and inspect the workflow result. Confirm the deployed app responds on your domain. Keep the generated README and workflow comments as the reference for your project's deployment setup.