All three platforms follow the same pattern: they invoke a start command on a long-running container. Wrap it withDocumentation Index
Fetch the complete documentation index at: https://docs.capy.sc/llms.txt
Use this file to discover all available pages before exploring further.
capy run and set SECRETS_BLOB + PROJECT_KEY in their env var UI.
The pattern
npm start (or equivalent). capy run decrypts .env or the blob on boot, spawns node server.js with plaintext process.env, the server runs until killed.
Any runtime works - just swap the inner command:
- Python:
capy run -- python app.py - Go:
capy run -- ./my-binary - Ruby:
capy run -- bundle exec rails server
Railway
- Install: add
@capy/clias a dep (bun add @capy/cli). Railway will install it during the build step. - Start command: either use the
startscript inpackage.json(Railway runsnpm startby default) or set a custom start command in Railway’s service settings:capy run -- <your cmd>. - Env vars: set
SECRETS_BLOBandPROJECT_KEYin Variables (Railway dashboard). - Deploy: push to the connected git branch.
Render
- Install:
@capy/clias a dep. - Start command: in Render’s service settings → Start Command, set
capy run -- <your cmd>. - Env vars: Environment tab → add
SECRETS_BLOBandPROJECT_KEY. - Deploy: push, Render picks up the new build.
Heroku
@capy/cli needs to be in dependencies (not devDependencies) so Heroku installs it for the runtime dyno.
Per-environment secrets
Each platform has a separate env var store per service / environment. Runningcapy deploy once per environment and pasting the per-env output into the right env-var store gives you distinct secrets per environment:
- Railway: create a new Capy deploy token for each Railway environment (Production, Staging, etc.)
- Render: same - each service instance gets its own token
- Heroku: each Heroku pipeline stage gets its own config vars