6.8 KiB
Vendored
Configuration (config.ini or environment variables)
Trilium supports configuration via a file named config.ini
and environment variables. This document provides a comprehensive reference for all configuration options.
Configuration Precedence
Configuration values are loaded in the following order of precedence (highest to lowest):
- Environment variables (checked first)
- config.ini file values
- Default values
Environment Variable Patterns
Trilium supports multiple environment variable patterns for flexibility. The primary pattern is: TRILIUM_[SECTION]_[KEY]
Where:
SECTION
is the INI section name in UPPERCASEKEY
is the camelCase configuration key converted to UPPERCASE (e.g.,instanceName
→INSTANCENAME
)
Additionally, shorter aliases are available for common configurations (see Alternative Variables section below).
Environment Variable Reference
General Section
Environment Variable | Type | Default | Description |
---|---|---|---|
TRILIUM_GENERAL_INSTANCENAME |
string | "" | Instance name for API identification |
TRILIUM_GENERAL_NOAUTHENTICATION |
boolean | false | Disable authentication (server only) |
TRILIUM_GENERAL_NOBACKUP |
boolean | false | Disable automatic backups |
TRILIUM_GENERAL_NODESKTOPICON |
boolean | false | Disable desktop icon creation |
TRILIUM_GENERAL_READONLY |
boolean | false | Enable read-only mode |
Network Section
Environment Variable | Type | Default | Description |
---|---|---|---|
TRILIUM_NETWORK_HOST |
string | "0.0.0.0" | Server host binding |
TRILIUM_NETWORK_PORT |
string | "3000" | Server port |
TRILIUM_NETWORK_HTTPS |
boolean | false | Enable HTTPS |
TRILIUM_NETWORK_CERTPATH |
string | "" | SSL certificate path |
TRILIUM_NETWORK_KEYPATH |
string | "" | SSL key path |
TRILIUM_NETWORK_TRUSTEDREVERSEPROXY |
boolean/string | false | Reverse proxy trust settings |
TRILIUM_NETWORK_CORSALLOWORIGIN |
string | "" | CORS allowed origins |
TRILIUM_NETWORK_CORSALLOWMETHODS |
string | "" | CORS allowed methods |
TRILIUM_NETWORK_CORSALLOWHEADERS |
string | "" | CORS allowed headers |
Session Section
Environment Variable | Type | Default | Description |
---|---|---|---|
TRILIUM_SESSION_COOKIEMAXAGE |
integer | 1814400 | Session cookie max age in seconds (21 days) |
Sync Section
Environment Variable | Type | Default | Description |
---|---|---|---|
TRILIUM_SYNC_SYNCSERVERHOST |
string | "" | Sync server host URL |
TRILIUM_SYNC_SYNCSERVERTIMEOUT |
string | "120000" | Sync server timeout in milliseconds |
TRILIUM_SYNC_SYNCPROXY |
string | "" | Sync proxy URL |
MultiFactorAuthentication Section
Environment Variable | Type | Default | Description |
---|---|---|---|
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL |
string | "" | OAuth/OpenID base URL |
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID |
string | "" | OAuth client ID |
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET |
string | "" | OAuth client secret |
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL |
string | "https://accounts.google.com" | OAuth issuer base URL |
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME |
string | "Google" | OAuth issuer display name |
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON |
string | "" | OAuth issuer icon URL |
Logging Section
Environment Variable | Type | Default | Description |
---|---|---|---|
TRILIUM_LOGGING_RETENTIONDAYS |
integer | 90 | Number of days to retain log files |
Alternative Environment Variables
The following alternative environment variable names are also supported and work identically to their longer counterparts:
Network CORS Variables
TRILIUM_NETWORK_CORS_ALLOW_ORIGIN
(alternative toTRILIUM_NETWORK_CORSALLOWORIGIN
)TRILIUM_NETWORK_CORS_ALLOW_METHODS
(alternative toTRILIUM_NETWORK_CORSALLOWMETHODS
)TRILIUM_NETWORK_CORS_ALLOW_HEADERS
(alternative toTRILIUM_NETWORK_CORSALLOWHEADERS
)
Sync Variables
TRILIUM_SYNC_SERVER_HOST
(alternative toTRILIUM_SYNC_SYNCSERVERHOST
)TRILIUM_SYNC_SERVER_TIMEOUT
(alternative toTRILIUM_SYNC_SYNCSERVERTIMEOUT
)TRILIUM_SYNC_SERVER_PROXY
(alternative toTRILIUM_SYNC_SYNCPROXY
)
OAuth/MFA Variables
TRILIUM_OAUTH_BASE_URL
(alternative toTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL
)TRILIUM_OAUTH_CLIENT_ID
(alternative toTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID
)TRILIUM_OAUTH_CLIENT_SECRET
(alternative toTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET
)TRILIUM_OAUTH_ISSUER_BASE_URL
(alternative toTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL
)TRILIUM_OAUTH_ISSUER_NAME
(alternative toTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME
)TRILIUM_OAUTH_ISSUER_ICON
(alternative toTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON
)
Logging Variables
TRILIUM_LOGGING_RETENTION_DAYS
(alternative toTRILIUM_LOGGING_RETENTIONDAYS
)
Boolean Values
Boolean environment variables accept the following values:
- True:
"true"
,"1"
,1
- False:
"false"
,"0"
,0
- Any other value defaults to
false
Using Environment Variables
Both naming patterns are fully supported and can be used interchangeably:
- The longer format follows the section/key pattern for consistency with the INI file structure
- The shorter alternatives provide convenience for common configurations
- You can use whichever format you prefer - both are equally valid
Examples
Docker Compose Example
services:
trilium:
image: triliumnext/notes
environment:
# Using full format
TRILIUM_GENERAL_INSTANCENAME: "My Trilium Instance"
TRILIUM_NETWORK_PORT: "8080"
TRILIUM_NETWORK_CORSALLOWORIGIN: "https://myapp.com"
TRILIUM_SYNC_SYNCSERVERHOST: "https://sync.example.com"
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL: "https://auth.example.com"
# Or using shorter alternatives (equally valid)
# TRILIUM_NETWORK_CORS_ALLOW_ORIGIN: "https://myapp.com"
# TRILIUM_SYNC_SERVER_HOST: "https://sync.example.com"
# TRILIUM_OAUTH_BASE_URL: "https://auth.example.com"
Shell Export Example
# Using either format
export TRILIUM_GENERAL_NOAUTHENTICATION=false
export TRILIUM_NETWORK_HTTPS=true
export TRILIUM_NETWORK_CERTPATH=/path/to/cert.pem
export TRILIUM_NETWORK_KEYPATH=/path/to/key.pem
export TRILIUM_LOGGING_RETENTIONDAYS=30
# Start Trilium
npm start
config.ini Reference
For the complete list of configuration options and their INI file format, please review the config-sample.ini file in the Trilium repository