Guides6 min read
Deploy a Node.js app from GitHub, and redeploy it on every push
From an empty server to a running application in about five minutes, including automatic redeploys when you push to your branch.
The whole point of application hosting is that you should never upload a zip file. Here is the shortest path from a repository to a running process.
1. Connect the repository
On your server's GitHub tab, install the app and pick the repository and branch. The panel uses short-lived installation tokens rather than asking you to paste a personal access token that never expires - a token you have to remember to revoke is a token that never gets revoked.
2. Set the start command
npm ci --omit=dev && node dist/server.jsUse your lockfile. `npm ci` fails loudly when the lockfile and the manifest disagree, which is exactly what you want on a server; `npm install` quietly resolves something different from what you tested.
3. Choose how it updates
- Auto update pulls the branch every time the container starts.
- Deploy on push restarts the server when GitHub reports a push to that branch - and only if it was already running, so a server you stopped stays stopped.
Both are independent switches. The panel keeps one row per deploy, opened when the push arrives and closed once the container is actually seen running again, so you can tell a deploy that shipped from a deploy that fell over.
4. Put a domain in front of it
Every application plan carries a reverse-proxy slot. Point a hostname at it from the Proxy tab and the certificate is issued and renewed for you.