Hashboard is designed to run behind a TLS-terminating reverse proxy. The proxy handles HTTPS certificates and routes the public hostname to Hashboard’s local port; Hashboard handles everything else. Two environment variables are mandatory in this setup:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/cryguy/hashboard/llms.txt
Use this file to discover all available pages before exploring further.
ORIGIN tells adapter-node what the public URL is, and ADDRESS_HEADER + XFF_DEPTH restore real client IP addresses that the proxy would otherwise hide.
Required environment variables
ORIGIN
ORIGIN is the value it uses to build absolute URLs — most critically the OIDC redirect_uri. If ORIGIN is unset or wrong, OIDC logins will fail with a redirect mismatch error at the identity provider.
Set ORIGIN in compose.yaml (Docker) or .env (pm2) before starting Hashboard.
ADDRESS_HEADER and XFF_DEPTH
XFF_DEPTH=1 tells adapter-node to trust exactly one proxy hop. If you have two proxies in front of Hashboard (for example, a CDN in front of nginx), set XFF_DEPTH=2. Do not set it higher than the actual number of trusted proxies you control — an attacker can spoof entries further back in the X-Forwarded-For chain.
Setting these in compose.yaml (Docker)
Uncomment the relevant lines incompose.yaml:
Setting these in .env (pm2)
Uncomment the relevant lines in.env:
TLS requirement
The simplest way to obtain a certificate is to let your reverse proxy manage it — Caddy does this automatically with its built-in ACME client, and NPMplus provides a GUI for Let’s Encrypt. For nginx, use Certbot or provision a certificate manually.nginx example
The following minimal nginx configuration proxies HTTPS traffic to Hashboard running onlocalhost:3000. Replace hashboard.example.com with your actual hostname and adjust the certificate paths.
proxy_buffering off is important. Hashboard uses server-sent events for live updates; a buffering proxy will hold the stream until it closes rather than forwarding events as they arrive.Caddy example
Caddy automatically provisions and renews TLS certificates via ACME. A minimalCaddyfile:
X-Forwarded-For by default. Set XFF_DEPTH=1 and ADDRESS_HEADER=X-Forwarded-For in your Hashboard configuration as described above.
NPMplus
NPMplus (Nginx Proxy Manager Plus) provides a GUI for configuring reverse proxy hosts and Let’s Encrypt certificates. After creating a proxy host pointing tohttp://127.0.0.1:3000 (or the Docker container name if both run in the same Compose network), add custom Nginx configuration in the “Advanced” tab:
ADDRESS_HEADER=X-Forwarded-For and XFF_DEPTH=1 in Hashboard’s environment.