Skip to main content

Environment Variables

Copy .env.example to .env and fill in values.

Required Variables

VariableDescription
DB_PASSWORDPostgreSQL password for the authsec user
JWT_DEF_SECRETJWT signing secret (32+ chars)
JWT_SECRETJWT signing secret (32+ chars)
JWT_SDK_SECRETSDK JWT signing secret (32+ chars)
TOTP_ENCRYPTION_KEYAES key for encrypting TOTP secrets (32+ chars)
SYNC_CONFIG_ENCRYPTION_KEYConfig sync encryption key (32+ chars)
SESSION_SECRETSession signing key (32+ chars)
HYDRA_SECRETS_SYSTEMHydra system secret (32+ chars)
HYDRA_SECRETS_COOKIEHydra cookie secret (32+ chars)
HYDRA_DSNHydra postgres DSN (must match DB_PASSWORD)

Generate secrets:

for var in JWT_DEF_SECRET JWT_SECRET JWT_SDK_SECRET TOTP_ENCRYPTION_KEY \
SYNC_CONFIG_ENCRYPTION_KEY SESSION_SECRET \
HYDRA_SECRETS_SYSTEM HYDRA_SECRETS_COOKIE; do
echo "$var=$(openssl rand -hex 32)"
done

Service URL Defaults

VariableDefaultNotes
BASE_URLhttp://localhostPublic-facing root URL
HYDRA_PUBLIC_URLhttp://localhost:4444Hydra public OAuth2 URL
REACT_APP_URLhttp://localhost:3000Frontend SPA URL
TENANT_DOMAIN_SUFFIXlocalhostSuffix for tenant workspace domains

Optional Features

VariableFeature
GOOGLE_CLIENT_SECRETGoogle social login
GITHUB_CLIENT_SECRETGitHub social login
MICROSOFT_CLIENT_SECRETMicrosoft social login
SMTP_HOST / SMTP_PORT / SMTP_USER / SMTP_PASSWORDEmail OTP and account flows
VAULT_ADDR / VAULT_TOKENHashiCorp Vault for OIDC provider secrets
ICP_SERVICE_URLSPIFFE/SPIRE workload identity
SPIFFE_OIDC_ISSUER and related SPIFFE_*JWT-SVID OIDC issuer configuration
OKTA_*Okta CIBA integration

Next step: First-Time Setup.