Configuration
Complete reference for the .lift.json configuration file including server connection, domain, Docker network, Traefik, scaling, and rate limiting options.
Configuration
Lift stores project configuration in a .lift.json file in your project root. This file is automatically added to .gitignore during lift init because it may contain server connection details.
Full Configuration Reference
{
"appName": "my-app", // Required. Lowercase, hyphens allowed
"server": {
"host": "1.2.3.4", // Required. IP or hostname
"port": 22, // Default: 22
"privateKey": "~/.ssh/id_ed25519" // Path to SSH key
},
"user": "onelift", // Default: "onelift"
"domain": "app.example.com", // Optional. Enables HTTPS via Traefik
"network": "onelift", // Docker network. Default: "onelift"
"entrypoint": "websecure", // Traefik entrypoint. Default: "websecure"
"port": 3000, // App port inside container. Default: 3000
"expose": true, // Publish port to host. Auto-enabled when no domain
"branch": "main", // Deploy branch. Default: "main"
"replicas": 1, // Number of containers. Default: 1
"rateLimit": { // Optional. Traefik rate limiting
"average": 100, // Requests per second
"burst": 50 // Max burst size
}
}
Configuration Fields
| Field | Type | Default | Description |
|---|---|---|---|
appName | string | - | Application name (required). Lowercase letters, numbers, hyphens only. |
server.host | string | - | Server IP address or hostname (required). |
server.port | number | 22 | SSH port number. |
server.privateKey | string | - | Path to SSH private key. Supports ~ expansion. Omit for SSH agent. |
user | string | "onelift" | SSH username for server connection. |
domain | string | - | Domain name for HTTPS. Enables Traefik with Let's Encrypt. |
network | string | "onelift" | Docker network name. Use an existing network when integrating with an external reverse proxy. |
entrypoint | string | "websecure" | Traefik entrypoint name. Some setups use "https" instead. |
port | number | 3000 | Application port inside the container. |
expose | boolean | false | Publish port to the host. Must be true when deploying without a domain, otherwise health checks will fail. When a domain is configured, Traefik handles routing internally and this field is ignored. |
branch | string | "main" | Default branch for production deploys. |
replicas | number | 1 | Number of container replicas for horizontal scaling. |
rateLimit | object | - | Traefik rate limit. Set average (req/s) and burst. |
Security Note:
.lift.jsoncontains server connection details. Always keep it in.gitignore. Lift adds it automatically duringinit.