Skip to main content

Environment Variables

webhull expands ${VAR:default} placeholders throughout the YAML config at load time. This page lists every variable referenced in the example configs and what it maps to.

Syntax​

SyntaxBehaviour
${VAR}Value of VAR; empty string if unset
${VAR:default}Value of VAR; falls back to default if unset or empty
$VARValue of VAR; empty string if unset (no default possible)

Expansion happens before YAML parsing — the binary never sees raw variable names in production.

Variables reference​

VariableUsed inDefaultDescription
PORTserver.port8080HTTP listen port.
HOSTserver.host0.0.0.0HTTP listen address.
ENVIRONMENTserver.environmentdevelopmentRuntime mode. Set to production in deployed environments.
BASE_URLsite.baseURL—Absolute base URL, e.g. https://example.com. No trailing slash.
SMTP_HOSTmail.host—SMTP server hostname.
SMTP_PORTmail.port587SMTP port.
SMTP_USERNAMEmail.username—SMTP auth username.
SMTP_PASSWORDmail.password—SMTP auth password.
SMTP_FROMmail.from—Sender email address.
GATE_SECRETgate.cookieSecret—HMAC-SHA256 signing key for the site gate. Min 32 chars. Never hardcode.
ARCON_GATE_SECRETarconGate.cookieSecret—HMAC-SHA256 signing key for the arcon gate. Min 32 chars. Never hardcode.
PLAUSIBLE_BASE_URLanalytics.plausible.baseURL—Plausible server URL (self-hosted or https://plausible.io).
PLAUSIBLE_DOMAINanalytics.plausible.domain—Plausible site domain for data-domain attribute.
COLLECTOR_ENDPOINTanalytics.collector.endpoint—Custom analytics collector HTTP endpoint.

Generating secrets​

# Generate a gate secret (32 bytes, base64-encoded)
openssl rand -base64 32

Kubernetes Secret example​

kubectl create secret generic webhull-secrets \
--from-literal=gate-secret="$(openssl rand -base64 32)" \
--from-literal=smtp-password="changeme" \
--namespace my-namespace
# Helm values — inject into the container
frontend:
env:
- name: GATE_SECRET
valueFrom:
secretKeyRef:
name: webhull-secrets
key: gate-secret
- name: SMTP_PASSWORD
valueFrom:
secretKeyRef:
name: webhull-secrets
key: smtp-password
- name: ENVIRONMENT
value: "production"
- name: BASE_URL
value: "https://example.com"