Basic Configuration
Learn how to create a basic Haloy configuration file to deploy your application.
Minimal Configuration
The simplest haloy.yaml configuration:
name: "my-app"
server: haloy.yourserver.com
domains:
- domain: "my-app.com"
aliases:
- "www.my-app.com"
name: "my-app"
server: haloy.yourserver.com
domains:
- domain: "my-app.com"
aliases:
- "www.my-app.com"
This configuration:
- Looks for a Dockerfile in the same directory
- Builds the image locally
- Uploads it to your server
- Deploys with SSL/TLS enabled
- Redirects www to the main domain
Format Support
Haloy supports three configuration formats:
YAML
name: "my-app"
acme_email: "you@example.com"
health_check_path: "/health"
name: "my-app"
acme_email: "you@example.com"
health_check_path: "/health"
JSON
{
"name": "my-app",
"acmeEmail": "you@example.com",
"healthCheckPath": "/health"
}
{
"name": "my-app",
"acmeEmail": "you@example.com",
"healthCheckPath": "/health"
}
TOML
name = "my-app"
acme_email = "you@example.com"
health_check_path = "/health"
name = "my-app"
acme_email = "you@example.com"
health_check_path = "/health"
Naming Convention:
- YAML/TOML: Use
snake_case(e.g.,acme_email) - JSON: Use
camelCase(e.g.,acmeEmail)
Adding a Domain
To make your app accessible via a domain:
name: "my-app"
server: haloy.yourserver.com
domains:
- domain: "my-app.com"
acme_email: "you@email.com" # If not added haloy will use email configured when setting up the api domain
name: "my-app"
server: haloy.yourserver.com
domains:
- domain: "my-app.com"
acme_email: "you@email.com" # If not added haloy will use email configured when setting up the api domain
Multiple Domains and Aliases
domains:
- domain: "my-app.com"
aliases:
- "www.my-app.com"
- "app.my-app.com"
- domain: "another-domain.com"
acme_email: "you@email.com"
domains:
- domain: "my-app.com"
aliases:
- "www.my-app.com"
- "app.my-app.com"
- domain: "another-domain.com"
acme_email: "you@email.com"
Custom Port
If your application listens on a port other than 8080:
name: "my-app"
server: haloy.yourserver.com
port: "3000" # Your app's internal port
name: "my-app"
server: haloy.yourserver.com
port: "3000" # Your app's internal port
The proxy will route traffic from ports 80/443 to this container port.
Health Checks
Configure a custom health check endpoint:
name: "my-app"
server: haloy.yourserver.com
health_check_path: "/api/health"
name: "my-app"
server: haloy.yourserver.com
health_check_path: "/api/health"
Default: "/"
Configuration File Location
By default, haloy looks for configuration in the current directory:
haloy.yamlhaloy.ymlhaloy.jsonhaloy.toml
Specify a custom config file:
haloy deploy --config /path/to/config.yaml
haloy deploy --config /path/to/config.yaml