Haloy is a lightweight deployment and orchestration system designed for developers who want a simple, reliable way to deploy Docker‑based applications to their own servers.
- Own your infrastructure – Deploy to any Linux server you control.
- Simple config – One
haloy.yamldescribes your app, domains, and routes. - Docker-native – Builds and deploys from your existing Dockerfile.
- TLS & domains – Automated HTTPS via ACME / Let’s Encrypt.
- Batteries included – Single CLI for setup, deploy, and status.
- Secure - Built-in secret management
- Server: Any modern Linux server
- Local: Docker for building your app
- Domain: A domain or subdomain pointing to your server for secure API access
Install script:
curl -fsSL https://sh.haloy.dev/install-haloy.sh | shHomebrew (macOS / Linux):
brew install haloydev/tap/haloynpm/pnpm/bun
npm i -g haloy
pnpm add -g haloy
bun add -g haloySSH into your server and run the install script with your API domain:
curl -fsSL https://sh.haloy.dev/install-haloyd.sh | API_DOMAIN=haloy.yourserver.com shNote: If you're not logged in as root, use | sudo sh instead of | sh.
After installation completes, copy the API token from the output and add the server to your local machine:
haloy server add haloy.yourserver.com <token>For detailed options, see the Server Installation guide.
Create a haloy.yaml file:
name: "my-app"
server: haloy.yourserver.com
domains:
- domain: "my-app.com"
aliases:
- "www.my-app.com" # Redirects to my-app.comThis will look for a Dockerfile in the same directory as your config file, build it and upload it to the server. This is the Haloy configuration in its simplest form.
Check out the examples repository for complete configurations showing how to deploy common web apps like Next.js, TanStack Start, static sites, and more.
haloy deploy
# Check status
haloy statusThat's it! Your application is now deployed and accessible at your configured domain.