How it works
What starts a deploy
- Creating the app.
- A push to the app’s branch, for apps deployed from GitHub.
- Redeploy on the app page, which runs what is live now. On an app in error the button reads Retry build.
- Saving a setting that changes the running app: the port, the start command or the health check path. On a failed app, saving one of them starts a deploy.
- Saving environment variables with Save and redeploy, attaching a database or rotating its credentials.
Statuses
A deploy moves through Queued, Building (apps that Raff builds), Deploying and Live. When a new deploy goes live, the one before it shows Replaced. A deploy that does not go live shows Failed with the reason.When a deploy counts as live
Raff moves traffic to a new deploy only once it answers:
Workers have no port and no health check: they are live once they start. Raff keeps checking a running app, and one that stops answering shows Error with the reason.
Every template has a health check. Add one to your own app when it needs time after its port opens, for example to run migrations at start. Set it in Settings, Runtime, Health check path; the path must start with
/.
Failed deploys
A failed deploy says why in plain words, on the app page and on the Deploys tab. A failed build shows the last 10 lines of its build log; Log on the deploy shows the whole log. Troubleshoot Raff Apps lists each message and its fix.Rollbacks
Roll back on an earlier deploy runs that deploy’s image again, without a new build. Only a deploy that went live can be the target: the button shows on deploys marked Replaced. The rollback is listed as a new deploy, and the app keeps its current environment variables and settings.When to use it
- Add a health check path to any app with a slow first start, or one that exposes a ready page.
- Roll back when a new deploy went live but behaves wrongly.
- Redeploy to restart an app on the same code.
Trade-offs
- An app without a health check counts as live as soon as its port opens, even if it is still setting up.
- A rollback brings back code, not data. Changes your newer code made to a database stay.
- An app that needs more than 10 minutes to start cannot go live.
Related
Roll back a deploy
Go back to an earlier deploy.
View logs and metrics
Build logs, runtime logs and the timeline.