Deploy from GitHub
Choose Deploy from GitHub when ordering. There are three ways to connect a repository:
| Source | Use it when | Auto-deploy on push |
|---|---|---|
| GitHub App (recommended) | Private or public repos you own | Built in |
| Public repository | Open-source code | Add our webhook (below) |
| Deploy key | Private repo, without installing the app | Add our webhook (below) |
GitHub App
Go to GitHub → Connect GitHub, pick the repositories to grant and approve. They then appear in the order form.
Deploy keys
Create a key under GitHub → Deploy keys, then add the public key in your repository under Settings → Deploy keys. Leave "Allow write access" off.
Build packs
- Nixpacks detects Node, Python, Go, PHP, Ruby and more automatically.
- Dockerfile builds the
Dockerfileat the repository root. - Docker Compose runs a
docker-compose.yml. - Static serves built files (set the publish directory in your build).
Set the port your app listens on (for example 3000). Your app must listen on 0.0.0.0, not localhost.
Auto-deploy for public and deploy-key apps
Open the service → Settings, copy the webhook URL and secret, then in GitHub: Settings → Webhooks → Add webhook, content type application/json, event Just the push event. Pushes to the configured branch start a deployment.
When a build fails
Open Deployments → Build log. Fix the problem in your repository and push again (or press Redeploy). Bugs in your own code are outside our support scope, but we are happy to point you in the right direction.