Root domain project docs are served under. A project with slug vector-db becomes reachable at vector-db.docs.<ORG_DOMAIN>.
Configuration
All configuration lives in .env at the repo root. .env.example has the full annotated list — this page is the reference version.
Instance
Section titled “Instance”ORG_DOMAINstringrequired
DASHBOARD_URLstringrequired
The full origin the dashboard itself is served at, e.g. https://docs.example.com.
DASHBOARD_HOSTstring
Same host as DASHBOARD_URL, without the scheme. Only read by deploy/Caddyfile.tunnel — see Tunnel deployment. Leave unset if you’re not using that path.
CADDYFILEstringdefault: Caddyfile
Which file under deploy/ Caddy uses. Set to Caddyfile.tunnel for tunnel deployments. Leave unset otherwise — never overwrite the tracked deploy/Caddyfile directly, that creates a local change git pull will conflict with.
DOCS_SUBDOMAIN_SEPARATORstringdefault: .
. gives every project <slug>.docs.<ORG_DOMAIN>, coverable by one wildcard DNS route. Set to - for <slug>-docs.<ORG_DOMAIN> instead — needed on a tunnel without wildcard certificate coverage, where each project needs its own exact route. See Tunnel deployment.
GOOGLE_CLIENT_IDstringrequired
From the Google Cloud Console.
GOOGLE_CLIENT_SECRETstringrequired
Paired with GOOGLE_CLIENT_ID. Set the authorized redirect URI to ${DASHBOARD_URL}/api/auth/callback/google when creating the OAuth client.
AUTH_SECRETstringrequired
Random 32+ byte secret used to sign session cookies. Generate one with openssl rand -base64 32.
AUTH_URLstring
Same value as DASHBOARD_URL. Recommended whenever Huell runs behind any reverse proxy or tunnel — origin auto-detection from request headers isn’t always reliable there, and an unset AUTH_URL can send sign-in redirects to the wrong host.
GitHub App
Section titled “GitHub App”GITHUB_APP_IDstring
GITHUB_APP_SLUGstring
GITHUB_APP_CLIENT_IDstring
GITHUB_APP_CLIENT_SECRETstring
GITHUB_APP_PRIVATE_KEY_PATHstringdefault: /run/secrets/github-app.pem
Path to the App’s private key .pem. If set manually, mount the key file into both the app and worker containers at this path (see docker-compose.yml).
GITHUB_WEBHOOK_SECRETstring
Set when creating the webhook on the App.
Storage
Section titled “Storage”DATA_DIRstringdefault: /data
Where the SQLite database and all build output live. Must be an absolute path — the dashboard, the migration runner, and the build worker each run from a different working directory and need to agree on one location. Inside Docker this is always /data, mapped to ./data on the host.