Complete reference for all environment variables supported by Hemmelig.
| Variable |
Description |
Default |
DATABASE_URL |
SQLite connection string |
file:./data/hemmelig.db |
BETTER_AUTH_SECRET |
Secret key for authentication sessions |
- |
BETTER_AUTH_URL |
Public URL of your instance (for proper cookie handling) |
- |
| Variable |
Description |
Default |
NODE_ENV |
Environment mode (production or development) |
development |
HEMMELIG_PORT |
Port the server listens on |
3000 |
HEMMELIG_BASE_URL |
Public URL of your instance (required for OAuth) |
- |
HEMMELIG_TRUSTED_ORIGIN |
Additional trusted origin for CORS |
- |
| Variable |
Description |
Default |
HEMMELIG_INSTANCE_NAME |
Custom name for your instance |
- |
HEMMELIG_INSTANCE_DESCRIPTION |
Custom description for your instance |
- |
HEMMELIG_ALLOW_REGISTRATION |
Allow new user registrations (true/false) |
true |
| Variable |
Description |
Default |
HEMMELIG_ALLOW_PASSWORD_PROTECTION |
Allow password-protected secrets |
true |
HEMMELIG_ALLOW_IP_RESTRICTION |
Allow IP range restrictions on secrets |
true |
HEMMELIG_ALLOW_FILE_UPLOADS |
Allow users to attach files to secrets |
true |
HEMMELIG_DISABLE_EMAIL_PASSWORD_SIGNUP |
Disable email/password registration (social login only) |
false |
HEMMELIG_MAX_ENCRYPTED_PAYLOAD_SIZE |
Hard ceiling for encrypted payloads in KB (parsed at startup) |
1024 |
| Variable |
Description |
Default |
HEMMELIG_ANALYTICS_ENABLED |
Enable privacy-focused analytics |
true |
HEMMELIG_ANALYTICS_HMAC_SECRET |
HMAC secret for anonymizing visitor IDs |
auto-generated |
See Social Login Documentation for detailed setup instructions.
| Variable |
Description |
HEMMELIG_AUTH_GITHUB_ID |
GitHub OAuth App Client ID |
HEMMELIG_AUTH_GITHUB_SECRET |
GitHub OAuth App Client Secret |
| Variable |
Description |
HEMMELIG_AUTH_GOOGLE_ID |
Google OAuth Client ID |
HEMMELIG_AUTH_GOOGLE_SECRET |
Google OAuth Client Secret |
| Variable |
Description |
HEMMELIG_AUTH_MICROSOFT_ID |
Microsoft Application (client) ID |
HEMMELIG_AUTH_MICROSOFT_SECRET |
Microsoft Client Secret |
HEMMELIG_AUTH_MICROSOFT_TENANT_ID |
Azure AD Tenant ID (optional, defaults to "common") |
| Variable |
Description |
HEMMELIG_AUTH_DISCORD_ID |
Discord Application Client ID |
HEMMELIG_AUTH_DISCORD_SECRET |
Discord Application Client Secret |
| Variable |
Description |
HEMMELIG_AUTH_GITLAB_ID |
GitLab Application ID |
HEMMELIG_AUTH_GITLAB_SECRET |
GitLab Application Secret |
| Variable |
Description |
HEMMELIG_AUTH_APPLE_ID |
Apple Services ID |
HEMMELIG_AUTH_APPLE_SECRET |
Apple Client Secret |
Twitter/X
| Variable |
Description |
HEMMELIG_AUTH_TWITTER_ID |
Twitter OAuth 2.0 Client ID |
HEMMELIG_AUTH_TWITTER_SECRET |
Twitter OAuth 2.0 Client Secret |
Hemmelig supports any OAuth 2.0 / OpenID Connect provider through generic OAuth configuration.
| Variable |
Description |
HEMMELIG_AUTH_GENERIC_OAUTH |
JSON array of generic OAuth provider configurations. See Social Login docs for details. |
Example:
HEMMELIG_AUTH_GENERIC_OAUTH='[{"providerId":"authentik","discoveryUrl":"https://auth.example.com/.well-known/openid-configuration","clientId":"client-id","clientSecret":"secret","scopes":["openid","profile","email"]}]'
Supported generic providers include: Authentik, Authelia, Keycloak, Zitadel, Ory Hydra, and any OAuth 2.0 / OIDC-compatible identity provider.
# Required
DATABASE_URL=file:./data/hemmelig.db
BETTER_AUTH_SECRET=your-secret-key-min-32-chars-long
BETTER_AUTH_URL=https://secrets.example.com
# Required
DATABASE_URL=file:./data/hemmelig.db
BETTER_AUTH_SECRET=your-very-secure-secret-key-here
BETTER_AUTH_URL=https://secrets.example.com
# Server
NODE_ENV=production
HEMMELIG_PORT=3000
HEMMELIG_TRUSTED_ORIGIN=https://secrets.example.com
# Instance
HEMMELIG_INSTANCE_NAME=Company Secrets
HEMMELIG_INSTANCE_DESCRIPTION=Secure secret sharing for our team
# Security
HEMMELIG_ENABLE_RATE_LIMITING=true
# Analytics
HEMMELIG_ANALYTICS_ENABLED=true
HEMMELIG_ANALYTICS_HMAC_SECRET=your-analytics-hmac-secret
# Social Login (optional)
HEMMELIG_AUTH_GITHUB_ID=your-github-client-id
HEMMELIG_AUTH_GITHUB_SECRET=your-github-client-secret
version: '3.8'
services:
hemmelig:
image: hemmelig/hemmelig:latest
ports:
- '3000:3000'
environment:
- DATABASE_URL=file:/data/hemmelig.db
- BETTER_AUTH_SECRET=change-this-to-a-secure-secret
- BETTER_AUTH_URL=https://secrets.example.com
- NODE_ENV=production
- HEMMELIG_PORT=3000
- HEMMELIG_ANALYTICS_ENABLED=true
volumes:
- hemmelig_data:/data
volumes:
hemmelig_data:
- Boolean values accept
true or false (case-insensitive)
- All
HEMMELIG_AUTH_* variables require both _ID and _SECRET to enable a provider
BETTER_AUTH_URL is required when using social login providers
- Generate secure secrets using:
openssl rand -base64 32