Environment Variables
Environment variables provides global configuration
Main Server Environment Variables
Main server environment variable provides global configuration for main server.
MAIN_LISTEN_ADDR
This sets the listen address of the main server. The default is 0.0.0.0:3000
.
RESOLVER_LISTEN_ADDR
This sets the listen address of the resolver server. The default is 0.0.0.0:3001
.
ADMIN_LISTEN_ADDR
This sets the listen address of the Admin API server. The default is 0.0.0.0:3002
.
TLS_CERT_FILE_PATH
This sets the file path of TLS certificate. It is only used when development mode is enabled. The default is tls-cert.pem
.
TLS_KEY_FILE_PATH
This sets the file path of TLS private key. It is only used when development mode is enabled. The default is tls-key.pem
.
ADMIN_API_AUTH
This sets the authorization mode of the Admin API. Valid values are jwt
and none
. The default is jwt
.
When the value is jwt
, all requests to the Admin API must bear a valid JWT.
When the value is none
, no authorization is needed. You must NOT use none
in production unless you know the implied consequences.
CONFIG_SOURCE_TYPE
This sets the type of the configuration. Valid values are local_fs
and kubernetes
. The default is local_fs
.
CONFIG_SOURCE_KUBECONFIG
This indicates the path to the .kubeconfig
config file. It is only used when configuration type is kubernetes
.
CONFIG_SOURCE_KUBE_NAMESPACE
This indicates the namespace where Kubernetes resources of all apps reside. It is only used when configuration type is kubernetes
.
CONFIG_SOURCE_WATCH
This indicates whether the configuration source would watch for changes and reload automatically. The default is true
.
CONFIG_SOURCE_DIRECTORY
This sets the path to app configuration directory file for local FS sources. The default is .
.
BUILTIN_RESOURCE_DIRECTORY
This sets the directory for built-in resource files. The default is resources/authgear
.
CUSTOM_RESOURCE_DIRECTORY
This sets the directory for customized resource files.
STATIC_ASSET_SERVING_ENABLED
This sets whether the bundled static asset should be served. Default is true
. You should never modify it.
STATIC_ASSET_DIR
This sets the filepath of the directory containing the bundled static asset. The default value of the provided Docker image does the right thing so you should never need to set it.
Portal Environment Variable
Portal environment variable provides global configuration for Authegar portal.
PORTAL_LISTEN_ADDR
This sets the listen address of the portal server. The default is 0.0.0.0:3003
.
CONFIG_SOURCE_TYPE
This sets the type of the configuration. Valid values are local_fs
and kubernetes
. The default is local_fs
.
CONFIG_SOURCE_KUBECONFIG
This indicates the path to the .kubeconfig
config file. It is only used when configuration type is kubernetes
.
CONFIG_SOURCE_KUBE_NAMESPACE
This indicates the namespace where Kubernetes resources of all apps reside. It is only used when configuration type is kubernetes
.
CONFIG_SOURCE_WATCH
This indicates whether the configuration source would watch for changes and reload automatically. The default is true
.
CONFIG_SOURCE_DIRECTORY
This sets the path to app configuration directory file for local FS sources. The default is .
.
AUTHGEAR_CLIENT_ID
This sets the OAuth client ID for Authgear portal.
AUTHGEAR_ENDPOINT
This sets the OAuth endpoint for Authgear portal.
AUTHGEAR_APP_ID
This sets the OAuth app ID for Authgear portal.
ADMIN_API_TYPE
This sets the type of the admin API. The only supported value for now is static
. The default is static
, so you should never change it.
ADMIN_API_ENDPOINT
This sets the endpoint of Admin API server. The default is http://localhost:3002
.
ADMIN_API_HOST_TEMPLATE
This sets the host for tenant resolution. The default is localhost:3002
.
APP_HOST_SUFFIX
This sets the host suffix for Authgear portal.
APP_ID_PATTERN
This sets the regular expression pattern for app ID validation. The defaults is ^[a-z0-9][a-z0-9-]{2,30}[a-z0-9]$
.
APP_KUBERNETES_INGRESS_TEMPLATE_FILE
This sets the file of Kubernetes ingress template. It is only used when configuration type is kubernetes
.
APP_KUBERNETES_DEFAULT_DOMAIN_TLS_CERT_TYPE
This sets the TLS cert type for default domain. Valid values are none
, static
, and cert-manager
. The default is none
. It is only used when configuration type is kubernetes
.
APP_KUBERNETES_DEFAULT_DOMAIN_TLS_CERT_SECRET_NAME
This sets the secret name for default domain. It is only used when configuration type is kubernetes
and TLS cert type is static
.
APP_KUBERNETES_DEFAULT_DOMAIN_TLS_CERT_ISSUER_KIND
This sets the issuer kind for default domain. It is only used when configuration type is kubernetes
and TLS cert type is cert-manager
.
APP_KUBERNETES_DEFAULT_DOMAIN_TLS_CERT_ISSUER_NAME
This sets the issuer name for default domain. It is only used when configuration type is kubernetes
and TLS cert type is cert-manager
.
APP_KUBERNETES_CUSTOM_DOMAIN_TLS_CERT_TYPE
This sets the TLS cert type for custom domain. Valid values are none
, static
, and cert-manager
. The default is none
. It is only used when configuration type is kubernetes
.
APP_KUBERNETES_CUSTOM_DOMAIN_TLS_CERT_SECRET_NAME
This sets the secret name for custom domain. It is only used when configuration type is kubernetes
and TLS cert type is static
.
APP_KUBERNETES_CUSTOM_DOMAIN_TLS_CERT_ISSUER_KIND
This sets the issuer kind for custom domain. It is only used when configuration type is kubernetes
and TLS cert type is cert-manager
.
APP_KUBERNETES_CUSTOM_DOMAIN_TLS_CERT_ISSUER_NAME
This sets the issuer name for custom domain. It is only used when configuration type is kubernetes
and TLS cert type is cert-manager
.
APP_BUILTIN_RESOURCE_DIRECTORY
This sets the directory for built-in resource files. The default is resources/authgear
.
APP_CUSTOM_RESOURCE_DIRECTORY
This sets the directory for customized resource files.
APP_MAX_OWNED_APPS
This sets the maximum number of apps user owned. When the value is -1
, owned apps limit is disabled. The default is -1
.
STATIC_ASSET_SERVING_ENABLED
This sets whether the bundled static asset should be served. Default is true
. You should never modify it.
STATIC_ASSET_DIR
This sets the filepath of the directory containing the bundled static asset. The default value of the provided Docker image does the right thing so you should never need to set it.
DATABASE_URL
This sets the URL of backend database.
DATABASE_SCHEMA
This sets the database schema of backend database. The default is public
.
DATABASE_MAX_OPEN_CONN
This sets the maximum open connections of backend database. The default is 2
.
DATABASE_MAX_IDLE_CONN
This sets the maximum idle connections of backend database. The default is 2
.
DATABASE_CONN_MAX_LIFETIME
This sets the maximum lifetime of backend database connection in seconds. The default is 1800
.
DATABASE_CONN_MAX_IDLE_TIME
This sets the maximum idle time of backend database connection in seconds. The default is 300
.
SMTP_HOST
This sets the server host of SMTP server.
SMTP_PORT
This sets the server port of SMTP server.
SMTP_USERNAME
This sets the username of SMTP server.
SMTP_PASSWORD
This sets the password of SMTP server.
SMTP_MODE
This sets the SMTP mode. Valid values are normal
and ssl
. The default is normal
.
MAIL_SENDER
This sets the sender field of admin invitation email.
MAIL_REPLY_TO
This sets the reply to field of admin invitation email.
PORTAL_BUILTIN_RESOURCE_DIRECTORY
This sets the directory for built-in resource files. The default is resources/portal
.
PORTAL_CUSTOM_RESOURCE_DIRECTORY
This sets the directory for customized resource files.
Common Environment Variable
Common environment variable provides global configuration for both main server and Authgear portal.
TRUST_PROXY
This sets whether incoming HTTP headers such as x-forwarded-host
can be trusted. If you deploy Authgear behind a reverse proxy capable of writing these headers, you should set the value to true
. The default is false
.
DEV_MODE
This sets whether Authgear should run in development mode. You should never need to set it. The default is false
.
When development mode is enabled:
TLS certificate is required, to enable secure cookies.
All
Host
header values are allowed.External message sending (SMS/Email) is disabled; messages to send are logged instead.
LOG_LEVEL
This sets the global log level. Valid values are debug
, info
, warn
and error
. The default is warn
.
STATIC_ASSET_URL_PREFIX
This sets the URL prefix of the bundled static asset. The default value includes commit hash so it is cache-friendly.
SENTRY_DSN
The sets the Sentry DSN, where errors/logs are reported to.
TL;DR
The only environment variable you should be aware of is TRUST_PROXY.
Last updated