Deploy from git
Connect a repo once. Every push builds and deploys.
Halo’s git integration watches a branch and ships every commit. Pull requests get isolated preview URLs that survive until the PR closes.
Connect a repository
halo linkThe CLI walks you through:
-
Choose a provider
GitHub, GitLab, or Bitbucket. OAuth handshake happens in your browser.
-
Pick a repo
Halo lists every repo you can read. Selection is scoped per-org.
-
Confirm the production branch
Defaults to
main. Override with--prod-branch develop.
After linking, every push to the production branch triggers a build. Every push to a non-prod branch creates a preview deployment.
Deployment lifecycle
Build
Halo runs your build command in an isolated container with the Node, Go, or Python runtime your halo.json declares. Build output is uploaded to the edge cache.
Deploy
Each deployment gets a stable URL of the form <project>-<hash>.halo.app. Aliases (production domains) flip atomically.
Rollback
halo rollback reverts the production alias to the previous deployment. Takes effect at the edge in under 5 seconds.
Configuration
Drop a halo.json at the repo root:
{
"framework": "next",
"build": "bun run build",
"output": ".next",
"regions": ["iad1", "sfo1", "fra1"],
"env": {
"NODE_ENV": "production"
}
}Field reference: see halo.json.