Deploy on push
Let every push to the watched branch redeploy the app automatically, from GitHub or any other connected Git repo, without a pipeline to maintain.
Turn on auto-deploy and every push to the watched branch rebuilds the app from the new commit and rolls it out, with each deploy on the record. No pipeline to write, no runner to keep alive, no deploy key to rotate.
Turn it on
Auto-deploy is set per app, in the console (there is no CLI flag or MCP tool for it):
- Connect the repo once. For GitHub, that’s the nyxory GitHub App. For other Git hosts, an HTTPS Git connection or, on a connected Gerrit, the project’s read account.
- Deploy the app once from that repo. The console captures the app’s blueprint from that deploy; the Auto-deploy panel on the app appears after it.
- Switch Redeploy on push on.
- Pick the branch to watch:
main, astagingbranch, whatever maps to that environment. Left blank, nyxory watchesmain, not your repository’s default branch, so set it explicitly if yours ismasteror anything else.
That’s the whole setup.
What happens on a push
On GitHub, the push notifies nyxory right away; repos on other hosts are checked about once a minute. You follow each deploy in the console, where the panel shows building, deploying, deployed, or action required, or from your agent with nyx_build_status.
On a dedicated instance, a deploy/ folder in the repo is applied on the same push. The manifests in it, a Postgres database included and a bucket where the instance has object storage, become the app’s configuration, and the console shows the commit it came from. A folder that breaks a rule is refused before anything is written, and the running version keeps serving. See Configure your app from the repo.
Good to know
- CronJobs are included. A push rolls the new image into an app’s CronJobs, and the next scheduled run uses it. See Jobs and CronJobs.
- Restores switch it off. An
apporfullrestore turns auto-deploy off so a push can’t race the rollback. It stays off until you switch Redeploy on push back on. - One branch, one environment. Point a production app at
mainand a staging app atstaging; each app watches its own branch, so the right commit always lands in the right place.
Related: Configure your app from the repo · Deploy from a private repo · Day-2 operations