Cache
Configures in-memory cache sizes for data, DNS records, and authorization tokens.
This object can be configured from the WebUI under Settings › Storage › Cache
Fields
Section titled “Fields”accessTokens
Section titled “accessTokens”Type:
Size· default:10485760· min: 2048Maximum size of the access tokens cache
contacts
Section titled “contacts”Type:
Size· default:33554432· min: 2048Maximum size of the address books and contacts cache
dnsIpv4
Section titled “dnsIpv4”Type:
Size· default:2097152· min: 2048Maximum size of the IPv4 record cache
dnsIpv6
Section titled “dnsIpv6”Type:
Size· default:1048576· min: 2048Maximum size of the IPv6 record cache
dnsMtaSts
Section titled “dnsMtaSts”Type:
Size· default:1048576· min: 2048Maximum size of the MTA-STS record cache
Type:
Size· default:2097152· min: 2048Maximum size of the MX record cache
dnsPtr
Section titled “dnsPtr”Type:
Size· default:1048576· min: 2048Maximum size of the PTR record cache
spamLookup
Section titled “spamLookup”Type:
Size· default:6291456· min: 2048Maximum size of the spam filter lookup cache, which holds DNSBL results and resolved URL redirects
dnsTlsa
Section titled “dnsTlsa”Type:
Size· default:1048576· min: 2048Maximum size of the TLSA record cache
dnsTxt
Section titled “dnsTxt”Type:
Size· default:8388608· min: 2048Maximum size of the TXT record cache
events
Section titled “events”Type:
Size· default:50331648· min: 2048Maximum size of the calendar and events cache
scheduling
Section titled “scheduling”Type:
Size· default:6291456· min: 2048Maximum size of the scheduling cache
Type:
Size· default:25165824· min: 2048Maximum size of the file storage data cache
httpAuth
Section titled “httpAuth”Type:
Size· default:2097152· min: 2048Maximum size of the HTTP authorization headers cache
messages
Section titled “messages”Type:
Size· default:335544320· min: 2048Maximum size of the e-mail data cache
messagesLarge
Section titled “messagesLarge”Type:
Size· default:536870912Maximum size of the e-mail data cache for accounts too large for the main e-mail data cache. Set it to zero to disable it, so that these accounts are only shared between the requests using them at the same time
messagesLargeTtl
Section titled “messagesLargeTtl”Type:
Duration· default:3600000Minimum time the e-mail data cache of a large account is kept in memory after it was last used. Once it has passed, the cache is released the next time an e-mail data cache is updated. Set it to zero to keep these caches until the space is needed for another large account
groupwareLarge
Section titled “groupwareLarge”Type:
Size· default:536870912Maximum size of the calendar, contact, file and scheduling caches for accounts too large for their main cache. Set it to zero to disable it, so that these accounts are only shared between the requests using them at the same time
groupwareLargeTtl
Section titled “groupwareLargeTtl”Type:
Duration· default:3600000Minimum time the calendar, contact, file or scheduling cache of a large account is kept in memory after it was last used. Once it has passed, the cache is released the next time one of these caches is updated. Set it to zero to keep these caches until the space is needed for another large account
domains
Section titled “domains”Type:
Size· default:2097152· min: 2048Maximum size of the domains cache
domainNames
Section titled “domainNames”Type:
Size· default:1048576· min: 2048Maximum size of the domain name lookup cache
domainNamesNegative
Section titled “domainNamesNegative”Type:
Size· default:2097152· min: 2048Maximum size of the domain name lookup negative cache
emailAddresses
Section titled “emailAddresses”Type:
Size· default:8388608· min: 2048Maximum size of the email addresses lookup cache
emailAddressesNegative
Section titled “emailAddressesNegative”Type:
Size· default:2097152· min: 2048Maximum size of the email addresses lookup negative cache
accounts
Section titled “accounts”Type:
Size· default:16777216· min: 2048Maximum size of the accounts cache
Type:
Size· default:1048576· min: 2048Maximum size of the roles cache
tenants
Section titled “tenants”Type:
Size· enterprise · default:1048576· min: 2048Maximum size of the tenants cache
mailingLists
Section titled “mailingLists”Type:
Size· default:2097152· min: 2048Maximum size of the mailing lists cache
dkimSignatures
Section titled “dkimSignatures”Type:
Size· default:8388608· min: 2048Maximum size of the DKIM signatures cache
negativeTtl
Section titled “negativeTtl”Type:
Duration· default:3600000Time-to-live for negative cache entries of domain and account name lookups, and the maximum time a negative DNS answer is cached
directoryRecipients
Section titled “directoryRecipients”Type:
Size· default:2097152· min: 2048Maximum size of the cache that records which recipients were recently resolved against an external directory
directoryRecipientsTtl
Section titled “directoryRecipientsTtl”Type:
Duration· default:600000How long a recipient resolved against an external directory is trusted before the directory is queried again
Type:
CacheSwap· default:{"@type":"Disabled"}Where account cache snapshots are persisted, so a cache miss reloads a snapshot and catches it up from the change log instead of rebuilding the whole cache from the data store
JMAP API
Section titled “JMAP API”The Cache singleton is available via the urn:stalwart:jmap capability.
x:Cache/get
Section titled “x:Cache/get”This is a standard Foo/get method as defined in RFC 8620, Section 5.1.
For singletons, the ids argument should be the literal singleton (or null to return the single instance).
This method requires the sysCacheGet permission.
curl -X POST https://mail.example.com/jmap/ \ -H 'Authorization: Bearer $TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "methodCalls": [ [ "x:Cache/get", { "ids": [ "singleton" ] }, "c1" ] ], "using": [ "urn:ietf:params:jmap:core", "urn:stalwart:jmap" ] }'x:Cache/set
Section titled “x:Cache/set”This is a standard Foo/set method as defined in RFC 8620, Section 5.3.
For singletons, only the update argument with id singleton is accepted; create and destroy arguments are rejected.
This method requires the sysCacheUpdate permission.
curl -X POST https://mail.example.com/jmap/ \ -H 'Authorization: Bearer $TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "methodCalls": [ [ "x:Cache/set", { "update": { "singleton": { "accessTokens": 10485760 } } }, "c1" ] ], "using": [ "urn:ietf:params:jmap:core", "urn:stalwart:jmap" ] }'stalwart-cli wraps the same JMAP calls. See the CLI reference for installation, authentication, and general usage.
stalwart-cli get CacheUpdate
Section titled “Update”stalwart-cli update Cache --field accessTokens=10485760Nested types
Section titled “Nested types”CacheSwap
Section titled “CacheSwap”Where account cache snapshots are persisted.
Disabled: Disabled. No additional fields.LocalFile: Node-local file. Carries the fields ofLocalFileSwap.Redis: In-memory store (Redis only). Carries the fields ofRedisSwap.BlobStore: Blob store. Carries the fields ofBlobStoreSwap.
LocalFileSwap
Section titled “LocalFileSwap”Cache snapshots stored on this node’s filesystem.
Type:
String· requiredDirectory in which cache snapshots are stored
flushChanges
Section titled “flushChanges”Type:
UnsignedInt· default:2000· min: 1Minimum number of changes accumulated against an account cache before its snapshot is rewritten. Large accounts need proportionally more: one sixteenth of the messages or resources in the cache
flushInterval
Section titled “flushInterval”Type:
Duration· default:600000Shortest interval between two snapshot writes for the same account
maxAccountSize
Section titled “maxAccountSize”Type:
Size· default:1073741824· min: 2048Largest snapshot that will be persisted. Accounts whose snapshot would exceed this are skipped
minAccountSize
Section titled “minAccountSize”Type:
Size· default:1048576Smallest snapshot worth persisting. Below this the rebuild costs less than the write, so the account is skipped. This is the uncompressed snapshot size, which is close to the account’s in-memory cache size and much smaller than its compressed size in the database
RedisSwap
Section titled “RedisSwap”Cache snapshots stored in Redis, shared across all nodes in the cluster.
Type:
RedisSwapStore· default:{"@type":"Default"}Redis deployment in which cache snapshots are stored
chunkSize
Section titled “chunkSize”Type:
Size· default:1048576· min: 65536Size of each snapshot chunk written to Redis
retention
Section titled “retention”Type:
Duration· default:604800000How long a snapshot survives in Redis without being rewritten before it expires
flushChanges
Section titled “flushChanges”Type:
UnsignedInt· default:2000· min: 1Minimum number of changes accumulated against an account cache before its snapshot is rewritten. Large accounts need proportionally more: one sixteenth of the messages or resources in the cache
flushInterval
Section titled “flushInterval”Type:
Duration· default:600000Shortest interval between two snapshot writes for the same account
maxAccountSize
Section titled “maxAccountSize”Type:
Size· default:1073741824· min: 2048Largest snapshot that will be persisted. Accounts whose snapshot would exceed this are skipped
minAccountSize
Section titled “minAccountSize”Type:
Size· default:1048576Smallest snapshot worth persisting. Below this the rebuild costs less than the write, so the account is skipped. This is the uncompressed snapshot size, which is close to the account’s in-memory cache size and much smaller than its compressed size in the database
RedisSwapStore
Section titled “RedisSwapStore”Redis deployment used to store cache snapshots.
Default: Use in-memory store (Redis only). No additional fields.Redis: Redis/Valkey. Carries the fields ofRedisStore.RedisCluster: Redis Cluster. Carries the fields ofRedisClusterStore.RedisSentinel: Redis Sentinel. Carries the fields ofRedisSentinelStore.
RedisStore
Section titled “RedisStore”Redis/Valkey store.
Type:
Uri· default:"redis://127.0.0.1"URL of the Redis server
connectTimeout
Section titled “connectTimeout”Type:
Duration· default:10000Maximum time to wait for a new connection to the Redis server to be established
allowInvalidCerts
Section titled “allowInvalidCerts”Type:
Boolean· default:falseAllow invalid TLS certificates when connecting to the Redis server
poolMaxConnections
Section titled “poolMaxConnections”Type:
UnsignedInt· default:10· max: 8192 · min: 1Maximum number of connections to the store
poolTimeoutCreate
Section titled “poolTimeoutCreate”Type:
Duration?· default:30000Timeout for creating a new connection
poolTimeoutWait
Section titled “poolTimeoutWait”Type:
Duration?· default:30000Timeout for waiting for a connection from the pool
poolTimeoutRecycle
Section titled “poolTimeoutRecycle”Type:
Duration?· default:30000Timeout for recycling a connection
RedisClusterStore
Section titled “RedisClusterStore”Redis Cluster store.
Type:
Set<Uri>· default:{"redis://127.0.0.1":true}URL(s) of the Redis server(s)
connectTimeout
Section titled “connectTimeout”Type:
Duration· default:10000Maximum time to wait for a new connection to the Redis server to be established
allowInvalidCerts
Section titled “allowInvalidCerts”Type:
Boolean· default:falseAllow invalid TLS certificates when connecting to the Redis server
authUsername
Section titled “authUsername”Type:
String?Username to connect to the store
authSecret
Section titled “authSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the store
maxRetryWait
Section titled “maxRetryWait”Type:
Duration?· max: 1024 · min: 1Maximum time to wait between retries
minRetryWait
Section titled “minRetryWait”Type:
Duration?· max: 1024 · min: 1Minimum time to wait between retries
maxRetries
Section titled “maxRetries”Type:
UnsignedInt?· max: 1024 · min: 1Number of retries to connect to the Redis cluster
readFromReplicas
Section titled “readFromReplicas”Type:
Boolean· default:trueWhether to read from replicas
protocolVersion
Section titled “protocolVersion”Type:
RedisProtocol· default:"resp2"Protocol Version
poolMaxConnections
Section titled “poolMaxConnections”Type:
UnsignedInt· default:10· max: 8192 · min: 1Maximum number of connections to the store
poolTimeoutCreate
Section titled “poolTimeoutCreate”Type:
Duration?· default:30000Timeout for creating a new connection
poolTimeoutWait
Section titled “poolTimeoutWait”Type:
Duration?· default:30000Timeout for waiting for a connection from the pool
poolTimeoutRecycle
Section titled “poolTimeoutRecycle”Type:
Duration?· default:30000Timeout for recycling a connection
SecretKeyOptional
Section titled “SecretKeyOptional”An optional secret value, or none.
None: No secret. No additional fields.Value: Secret value. Carries the fields ofSecretKeyValue.EnvironmentVariable: Secret read from environment variable. Carries the fields ofSecretKeyEnvironmentVariable.File: Secret read from file. Carries the fields ofSecretKeyFile.
SecretKeyValue
Section titled “SecretKeyValue”A secret value provided directly.
secret
Section titled “secret”Type:
String· required · secretPassword or secret value
SecretKeyEnvironmentVariable
Section titled “SecretKeyEnvironmentVariable”A secret value read from an environment variable.
variableName
Section titled “variableName”Type:
String· requiredEnvironment variable name to read the secret from
SecretKeyFile
Section titled “SecretKeyFile”A secret value read from a file.
filePath
Section titled “filePath”Type:
String· requiredFile path to read the secret from
RedisSentinelStore
Section titled “RedisSentinelStore”Redis Sentinel store.
Type:
Set<Uri>· default:{"redis://127.0.0.1:26379":true}Address(es) of the Sentinel node(s)
serviceName
Section titled “serviceName”Type:
String· default:"mymaster"Name of the monitored master (service) to query via the Sentinels
connectTimeout
Section titled “connectTimeout”Type:
Duration· default:10000Maximum time to wait for a new connection to the Redis server to be established
allowInvalidCerts
Section titled “allowInvalidCerts”Type:
Boolean· default:falseAllow invalid TLS certificates when connecting to the Redis server
authUsername
Section titled “authUsername”Type:
String?Username to connect to the data nodes
authSecret
Section titled “authSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the data nodes
sentinelUsername
Section titled “sentinelUsername”Type:
String?Username to connect to the Sentinel nodes
sentinelSecret
Section titled “sentinelSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the Sentinel nodes
protocolVersion
Section titled “protocolVersion”Type:
RedisProtocol· default:"resp2"Protocol Version
poolMaxConnections
Section titled “poolMaxConnections”Type:
UnsignedInt· default:10· max: 8192 · min: 1Maximum number of connections to the store
poolTimeoutCreate
Section titled “poolTimeoutCreate”Type:
Duration?· default:30000Timeout for creating a new connection
poolTimeoutWait
Section titled “poolTimeoutWait”Type:
Duration?· default:30000Timeout for waiting for a connection from the pool
poolTimeoutRecycle
Section titled “poolTimeoutRecycle”Type:
Duration?· default:30000Timeout for recycling a connection
BlobStoreSwap
Section titled “BlobStoreSwap”Cache snapshots stored in a blob store, shared across all nodes in the cluster.
Type:
BlobSwapStore· default:{"@type":"Default"}Blob store in which cache snapshots are stored
retention
Section titled “retention”Type:
Duration· default:604800000How long a snapshot survives in the blob store without being rewritten before the cleanup task removes it
flushChanges
Section titled “flushChanges”Type:
UnsignedInt· default:2000· min: 1Minimum number of changes accumulated against an account cache before its snapshot is rewritten. Large accounts need proportionally more: one sixteenth of the messages or resources in the cache
flushInterval
Section titled “flushInterval”Type:
Duration· default:600000Shortest interval between two snapshot writes for the same account
maxAccountSize
Section titled “maxAccountSize”Type:
Size· default:1073741824· min: 2048Largest snapshot that will be persisted. Accounts whose snapshot would exceed this are skipped
minAccountSize
Section titled “minAccountSize”Type:
Size· default:1048576Smallest snapshot worth persisting. Below this the rebuild costs less than the write, so the account is skipped. This is the uncompressed snapshot size, which is close to the account’s in-memory cache size and much smaller than its compressed size in the database
BlobSwapStore
Section titled “BlobSwapStore”Blob store used to store cache snapshots.
Default: Use blob store. No additional fields.S3: S3-compatible. Carries the fields ofS3Store.Azure: Azure blob storage. Carries the fields ofAzureStore.FileSystem: Filesystem. Carries the fields ofFileSystemStore.FoundationDb: FoundationDB. Carries the fields ofFoundationDbStore.PostgreSql: PostgreSQL. Carries the fields ofPostgreSqlStore.MySql: mySQL. Carries the fields ofMySqlStore.
S3Store
Section titled “S3Store”S3-compatible blob store.
region
Section titled “region”Type:
S3StoreRegion· default:{"@type":"UsEast1"}The S3 region where the bucket resides
bucket
Section titled “bucket”Type:
String· requiredThe S3 bucket where blobs (e-mail messages, Sieve scripts, etc.) will be stored
accessKeyId
Section titled “accessKeyId”Type:
PublicStringOptional· default:{"@type":"None"}Access key ID that identifies the S3 account
secretKey
Section titled “secretKey”Type:
SecretKeyOptional· default:{"@type":"None"}The secret access key for the S3 account
sessionToken
Section titled “sessionToken”Type:
SecretKeyOptional· default:{"@type":"None"}Session token for temporary credentials, sent as the x-amz-security-token header
profile
Section titled “profile”Type:
String?Used when retrieving credentials from a shared credentials file. If specified, the server will use the access key ID, secret access key, and session token (if available) associated with the given profile
timeout
Section titled “timeout”Type:
Duration· default:30000Request timeout for S3 operations
maxRetries
Section titled “maxRetries”Type:
UnsignedInt· default:3· max: 10The maximum number of times to retry failed requests. Set to 0 to disable retries
keyPrefix
Section titled “keyPrefix”Type:
String?A prefix that will be added to the keys of all objects stored in the blob store
allowInvalidCerts
Section titled “allowInvalidCerts”Type:
Boolean· default:falseAllow invalid TLS certificates when connecting to the S3 service
verifyAfterWrite
Section titled “verifyAfterWrite”Type:
Boolean· default:trueAfter each successful write, verify the object is readable on the backend. Defends against the rare case where an S3-compatible backend returns success but does not actually persist the data. Adds one extra request per write.
S3StoreRegion
Section titled “S3StoreRegion”Predefined S3 regions.
UsEast1: us-east-1. No additional fields.UsEast2: us-east-2. No additional fields.UsWest1: us-west-1. No additional fields.UsWest2: us-west-2. No additional fields.CaCentral1: ca-central-1. No additional fields.AfSouth1: af-south-1. No additional fields.ApEast1: ap-east-1. No additional fields.ApSouth1: ap-south-1. No additional fields.ApNortheast1: ap-northeast-1. No additional fields.ApNortheast2: ap-northeast-2. No additional fields.ApNortheast3: ap-northeast-3. No additional fields.ApSoutheast1: ap-southeast-1. No additional fields.ApSoutheast2: ap-southeast-2. No additional fields.CnNorth1: cn-north-1. No additional fields.CnNorthwest1: cn-northwest-1. No additional fields.EuNorth1: eu-north-1. No additional fields.EuCentral1: eu-central-1. No additional fields.EuCentral2: eu-central-2. No additional fields.EuWest1: eu-west-1. No additional fields.EuWest2: eu-west-2. No additional fields.EuWest3: eu-west-3. No additional fields.IlCentral1: il-central-1. No additional fields.MeSouth1: me-south-1. No additional fields.SaEast1: sa-east-1. No additional fields.DoNyc3: Digital Ocean nyc3. No additional fields.DoAms3: Digital Ocean ams3. No additional fields.DoSgp1: Digital Ocean sgp1. No additional fields.DoFra1: Digital Ocean fra1. No additional fields.Yandex: Yandex Object Storage. No additional fields.WaUsEast1: Wasabi us-east-1. No additional fields.WaUsEast2: Wasabi us-east-2. No additional fields.WaUsCentral1: Wasabi us-central-1. No additional fields.WaUsWest1: Wasabi us-west-1. No additional fields.WaCaCentral1: Wasabi ca-central-1. No additional fields.WaEuCentral1: Wasabi eu-central-1. No additional fields.WaEuCentral2: Wasabi eu-central-2. No additional fields.WaEuWest1: Wasabi eu-west-1. No additional fields.WaEuWest2: Wasabi eu-west-2. No additional fields.WaApNortheast1: Wasabi ap-northeast-1. No additional fields.WaApNortheast2: Wasabi ap-northeast-2. No additional fields.WaApSoutheast1: Wasabi ap-southeast-1. No additional fields.WaApSoutheast2: Wasabi ap-southeast-2. No additional fields.Custom: Custom. Carries the fields ofS3StoreCustomRegion.
S3StoreCustomRegion
Section titled “S3StoreCustomRegion”Custom S3-compatible endpoint.
Type:
Uri· requiredEndpoint URL
region
Section titled “region”Type:
String· requiredRegion name
PublicStringOptional
Section titled “PublicStringOptional”An optional public value, or none.
None: No value. No additional fields.Value: Value. Carries the fields ofPublicStringValue.EnvironmentVariable: Value read from environment variable. Carries the fields ofSecretKeyEnvironmentVariable.File: Value read from file. Carries the fields ofSecretKeyFile.
PublicStringValue
Section titled “PublicStringValue”A public value provided directly.
Type:
String· requiredValue
AzureStore
Section titled “AzureStore”Azure Blob Storage store.
storageAccount
Section titled “storageAccount”Type:
String· requiredThe Azure Storage Account where blobs (e-mail messages, Sieve scripts, etc.) will be stored
container
Section titled “container”Type:
String· requiredThe name of the container in the Storage Account
environment
Section titled “environment”Type:
AzureEnvironment· default:"public"Azure cloud environment, used to derive the default blob service URL and the Microsoft Entra ID authority
Type:
Uri?Custom blob service URL, for private endpoints or the Azurite emulator. When empty, it is derived from the storage account and the cloud environment
Type:
AzureAuth· requiredAuthentication method used to access the Storage Account
timeout
Section titled “timeout”Type:
Duration· default:30000Request timeout for Azure Blob Storage operations
maxRetries
Section titled “maxRetries”Type:
UnsignedInt· default:3· max: 10The maximum number of times to retry failed requests. Set to 0 to disable retries
keyPrefix
Section titled “keyPrefix”Type:
String?A prefix that will be added to the keys of all objects stored in the blob store
AzureAuth
Section titled “AzureAuth”Azure Blob Storage authentication method.
SharedKey: Shared Key. Carries the fields ofAzureAuthSharedKey.SasToken: SAS Token. Carries the fields ofAzureAuthSasToken.ClientSecret: Service Principal (Client Secret). Carries the fields ofAzureAuthClientSecret.ManagedIdentity: Managed Identity. Carries the fields ofAzureAuthManagedIdentity.WorkloadIdentity: Workload Identity. Carries the fields ofAzureAuthWorkloadIdentity.
AzureAuthSharedKey
Section titled “AzureAuthSharedKey”Azure Storage Account shared key authentication.
accountKey
Section titled “accountKey”Type:
SecretKey· requiredThe shared key of the Azure Storage Account
SecretKey
Section titled “SecretKey”A secret value provided directly, from an environment variable, or from a file.
Value: Secret value. Carries the fields ofSecretKeyValue.EnvironmentVariable: Secret read from environment variable. Carries the fields ofSecretKeyEnvironmentVariable.File: Secret read from file. Carries the fields ofSecretKeyFile.
AzureAuthSasToken
Section titled “AzureAuthSasToken”Azure shared access signature (SAS) token authentication.
sasToken
Section titled “sasToken”Type:
SecretKey· requiredSAS token granting read, write and delete permissions on the container. The leading ’?’ is optional
AzureAuthClientSecret
Section titled “AzureAuthClientSecret”Microsoft Entra ID service principal authentication using a client secret.
tenantId
Section titled “tenantId”Type:
String· requiredMicrosoft Entra ID tenant ID
clientId
Section titled “clientId”Type:
String· requiredApplication (client) ID of the service principal
clientSecret
Section titled “clientSecret”Type:
SecretKey· requiredApplication client secret
AzureAuthManagedIdentity
Section titled “AzureAuthManagedIdentity”Azure managed identity authentication.
clientId
Section titled “clientId”Type:
String?Client ID of a user-assigned managed identity. When empty, the system-assigned identity is used
AzureAuthWorkloadIdentity
Section titled “AzureAuthWorkloadIdentity”Microsoft Entra Workload ID authentication using a federated token file.
tenantId
Section titled “tenantId”Type:
String?Microsoft Entra ID tenant ID. When empty, the AZURE_TENANT_ID environment variable is used
clientId
Section titled “clientId”Type:
String?Application (client) ID. When empty, the AZURE_CLIENT_ID environment variable is used
tokenFile
Section titled “tokenFile”Type:
String?Path to the federated token file. When empty, the AZURE_FEDERATED_TOKEN_FILE environment variable is used
FileSystemStore
Section titled “FileSystemStore”Filesystem blob store.
Type:
String· requiredWhere to store the data in the server’s filesystem
Type:
UnsignedInt· default:2· max: 5Maximum depth of nested directories
FoundationDbStore
Section titled “FoundationDbStore”FoundationDB data store.
clusterFile
Section titled “clusterFile”Type:
String?Path to the cluster file for the FoundationDB cluster
datacenterId
Section titled “datacenterId”Type:
String?Data center ID (optional)
machineId
Section titled “machineId”Type:
String?Machine ID in the FoundationDB cluster (optional)
transactionRetryDelay
Section titled “transactionRetryDelay”Type:
Duration?Transaction maximum retry delay
transactionRetryLimit
Section titled “transactionRetryLimit”Type:
UnsignedInt?· max: 1000 · min: 1Transaction retry limit
transactionTimeout
Section titled “transactionTimeout”Type:
Duration?Transaction timeout
PostgreSqlStore
Section titled “PostgreSqlStore”PostgreSQL data store.
connectTimeout
Section titled “connectTimeout”Type:
Duration?· default:15000Maximum time to wait for a connection to the database server to be established
useTls
Section titled “useTls”Type:
Boolean· default:falseUse TLS to connect to the store
allowInvalidCerts
Section titled “allowInvalidCerts”Type:
Boolean· default:falseAllow invalid TLS certificates when connecting to the store
poolMaxConnections
Section titled “poolMaxConnections”Type:
UnsignedInt?· max: 8192 · min: 1Maximum number of connections to the store. When unset, 4 per CPU core, between 16 and 32.
poolRecyclingMethod
Section titled “poolRecyclingMethod”Type:
PostgreSqlRecyclingMethod· default:"fast"Method to use when recycling connections in the pool
readReplicas
Section titled “readReplicas”Type:
List<PostgreSqlSettings>· enterpriseList of read replicas for the store
Type:
String· requiredHostname of the database server
Type:
UnsignedInt· default:5432· max: 65535 · min: 1Port of the database server
database
Section titled “database”Type:
String· default:"stalwart"Name of the database
authUsername
Section titled “authUsername”Type:
String?· default:"stalwart"Username to connect to the store
authSecret
Section titled “authSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the store
options
Section titled “options”Type:
String?Additional connection options
PostgreSqlSettings
Section titled “PostgreSqlSettings”PostgreSQL connection settings.
Type:
String· requiredHostname of the database server
Type:
UnsignedInt· default:5432· max: 65535 · min: 1Port of the database server
database
Section titled “database”Type:
String· default:"stalwart"Name of the database
authUsername
Section titled “authUsername”Type:
String?· default:"stalwart"Username to connect to the store
authSecret
Section titled “authSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the store
options
Section titled “options”Type:
String?Additional connection options
MySqlStore
Section titled “MySqlStore”MySQL data store.
idleTimeout
Section titled “idleTimeout”Type:
Duration?· default:15000Time an idle connection may stay open before the server closes it (sets the MySQL wait_timeout session variable)
useTls
Section titled “useTls”Type:
Boolean· default:falseUse TLS to connect to the store
allowInvalidCerts
Section titled “allowInvalidCerts”Type:
Boolean· default:falseAllow invalid TLS certificates when connecting to the store
maxAllowedPacket
Section titled “maxAllowedPacket”Type:
UnsignedInt?· max: 1073741824 · min: 1024Maximum size of a packet in bytes
poolMaxConnections
Section titled “poolMaxConnections”Type:
UnsignedInt?· max: 8192 · min: 1Maximum number of connections to the store. When unset, 4 per CPU core, between 16 and 32.
poolMinConnections
Section titled “poolMinConnections”Type:
UnsignedInt?· default:5· max: 8192 · min: 1Minimum number of connections to the store
readReplicas
Section titled “readReplicas”Type:
List<MySqlSettings>· enterpriseList of read replicas for the store
Type:
String· requiredHostname of the database server
Type:
UnsignedInt· default:3306· max: 65535 · min: 1Port of the database server
database
Section titled “database”Type:
String· default:"stalwart"Name of the database
authUsername
Section titled “authUsername”Type:
String?· default:"stalwart"Username to connect to the store
authSecret
Section titled “authSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the store
MySqlSettings
Section titled “MySqlSettings”MySQL connection settings.
Type:
String· requiredHostname of the database server
Type:
UnsignedInt· default:3306· max: 65535 · min: 1Port of the database server
database
Section titled “database”Type:
String· default:"stalwart"Name of the database
authUsername
Section titled “authUsername”Type:
String?· default:"stalwart"Username to connect to the store
authSecret
Section titled “authSecret”Type:
SecretKeyOptional· default:{"@type":"None"}Password to connect to the store
RedisProtocol
Section titled “RedisProtocol”| Value | Label |
|---|---|
resp2 | RESP2 |
resp3 | RESP3 |
AzureEnvironment
Section titled “AzureEnvironment”| Value | Label |
|---|---|
public | Public |
china | China |
us-government | US Government |
PostgreSqlRecyclingMethod
Section titled “PostgreSqlRecyclingMethod”| Value | Label |
|---|---|
fast | Fast recycling method |
verified | Verified recycling method |
clean | Clean recycling method |