Deploy a New Service
Connect a Git Provider
Connect your GitHub, GitLab or Bitbucket account to deploy public and private repositories.
Service Configuration
Configure your new service deployment.
⚠Check this is the branch you want. Auto-deploy redeploys on every push to this branch, so a wrong branch ships the wrong code — and deploys are not refundable.
Automatically redeploy on every commit/push to the selected branch.
Auto-detected from your app (Dockerfile EXPOSE, PORT env or listening port). Only set this if your app uses a fixed port.
Adds a managed database to your service. Connection string is injected automatically.
When enabled, .env file values overwrite these variables on every push. Disable to keep dashboard values as source of truth.
Keeps your repository’s .env in place through every build instead of deleting it before checkout, so your backend settings can never go missing. Turned on automatically for private repositories. Only use this with a private repo — a .env in a public repository is readable by anyone.
⚠Check before you deploy
- ⚠Confirm your branch. The branch you selected is what gets built and what every future push auto-redeploys. Deploying the wrong branch overwrites your live app, and we do not refund deployments — check it before you click, because it cannot be undone afterwards.
- ⚠Check your
.envfor secrets before the first deploy. If your repository is public, anything in a committed.env— API keys, database passwords, tokens, private URLs — is publicly readable and must be treated as compromised. Make the repo private, or remove the secrets and set them in App → Settings → Environment Variables instead. Rotate any secret that was ever pushed to a public repo. - ⚠“Sync from .env” makes your repo’s
.envthe source of truth and it overwrites your dashboard variables on every push. Double-check the.envon the branch you are deploying actually holds the values you intend to run with. - ⚠Verify the app builds and the port is right. Check
Dockerfile/ start command / health-check path match your app, or the deploy will fail after the build and still count against your plan.
