## ✨ Features
Haloy helps you deploy apps with:
- Fast setup on a fresh VPS
- Automatic HTTPS
- Zero-downtime deploys
- Simple rollbacks
- Preview environments
- No Kubernetes required
- No vendor lock-in
## 🚀 Quickstart
### Prerequisites
- **Server**: Any modern Linux server
- **Local**: Docker for building your app
- **Domain**: A domain or subdomain pointing to your server for secure API access
### 1. Install haloy
**Install script:**
```bash
curl -fsSL https://sh.haloy.dev/install-haloy.sh | sh
```
**Homebrew (macOS / Linux):**
```bash
brew install haloydev/tap/haloy
```
**Go:**
```bash
go install github.com/haloydev/haloy/cmd/haloy@latest
```
**npm/pnpm/bun:**
```bash
npm i -g haloy
pnpm add -g haloy
bun add -g haloy
```
### 2. Server Setup
SSH into your server and run the install script with your API domain:
```bash
curl -fsSL https://sh.haloy.dev/install-haloyd.sh | API_DOMAIN=haloy.yourserver.com sh
```
**Note:** 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:
```bash
haloy server add haloy.yourserver.com
```
For detailed options, see the [Server Installation](https://haloy.dev/docs/server-installation) guide.
### 3. Create haloy.yaml
Create a `haloy.yaml` file:
```yaml
name: "my-app"
server: haloy.yourserver.com
domains:
- domain: "my-app.com"
aliases:
- "www.my-app.com" # Redirects to my-app.com
```
This 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](https://github.com/haloydev/examples) for complete configurations showing how to deploy common web apps like Next.js, TanStack Start, static sites, and more.
### 4. Deploy
```bash
haloy deploy
# Check status
haloy status
```
That's it! Your application is now deployed and accessible at your configured domain.
## Learn More
- [Configuration Reference](https://haloy.dev/docs/configuration-reference)
- [Commands Reference](https://haloy.dev/docs/commands-reference)
- [Architecture](https://haloy.dev/docs/architecture)
- [Examples Repository](https://github.com/haloydev/examples)
## Development
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and contribution guidelines.
Local builds can embed Git-derived version metadata:
```bash
task build
```
Releases are tag-driven. Cutting a release requires [Task](https://taskfile.dev/docs/installation):
```bash
./tools/create-release-tag.sh --next
# Or provide an explicit tag
./tools/create-release-tag.sh v0.1.0-beta.43
```