Environment variables
The complete reference of vuzon's environment variables — two required, the rest tuned for a homelab on plain HTTP by default.
Required
The panel login is not an environment variable — you choose it in the browser on the first visit.
| Variable | Purpose |
|---|---|
CF_API_TOKEN |
Cloudflare API token with the three scopes from API token. |
DOMAIN |
Zone apex in Cloudflare; used to resolve zone/account if IDs are not set. |
# The email domain you manage in Cloudflare, e.g. mydomain.dev
DOMAIN=
# Cloudflare API token (see the API token page)
CF_API_TOKEN=Optional
The defaults are meant for a homelab on plain HTTP.
| Variable | Default | Purpose |
|---|---|---|
VUZON_PORT |
8001 |
Host TCP port mapped to the app. |
VUZON_DATA_DIR |
/app/data (Docker) |
Where the panel keeps its credentials (hashed) and its session key. Must be writable and survive restarts. From source it defaults to ./data. |
COOKIE_SECURE |
off | Set to 1 so the session cookie is marked Secure (HTTPS / TLS-terminating proxy). Off by default so homelab HTTP works. |
TRUST_PROXY |
off | Set behind a reverse proxy so the real client IP reaches the login rate limit — see Reverse proxy & TLS. |
CF_ZONE_ID |
auto | Only needed when autodetection from DOMAIN fails; set together with CF_ACCOUNT_ID. |
CF_ACCOUNT_ID |
auto | See above. |
If autodetection from DOMAIN fails: add both CF_ZONE_ID and
CF_ACCOUNT_ID to your .env — they are not in the template, you only need
them when the startup error asks for them. Autodetection also stops if two
zones share the same name.
Local development
With pnpm start outside Docker, PORT overrides VUZON_PORT for the listen port. The Docker image sets NODE_ENV=production; cookies stay usable over HTTP unless you set COOKIE_SECURE=1. Other developer-oriented variables (VUZON_PUBLIC_DIR) live in the repository’s CONTRIBUTING.