Configuration Options¶
Complete reference for all configuration options in the MailuConfig interface.
MailuConfig Interface¶
The MailuConfig interface defines all configuration options for deploying Mailu.
Core Configuration¶
domain (required)¶
Type:
stringDescription: Primary mail domain for the Mailu instance
Example:
'mail.example.com'
hostnames (required)¶
Type:
string[]Description: List of hostnames for the mail server
Example:
['mail.example.com', 'imap.example.com']
secretKey (required)¶
Type:
SecretReferenceDescription: Reference to Kubernetes secret containing the Mailu secret key
Example:
{ name: 'mailu-secrets', key: 'SECRET_KEY' }
Database Configuration¶
database¶
Type:
DatabaseConfigDescription: Database backend configuration (PostgreSQL or SQLite)
PostgreSQL:
{
type: 'postgresql',
host: string,
port: number,
name: string,
user: SecretReference,
password: SecretReference
}
SQLite (default):
{
type: 'sqlite',
path: string // Default: '/data/main.db'
}
Redis Configuration¶
redis¶
Type:
RedisConfigDescription: Redis configuration for caching and session storage
{
enabled: boolean,
host: string,
port: number,
password?: SecretReference
}
Component Toggles¶
components¶
Type:
ComponentTogglesDescription: Enable/disable optional Mailu components
{
admin: boolean, // Default: true
webmail: boolean, // Default: true
clamav: boolean, // Default: false
webdav: boolean, // Default: false
fetchmail: boolean, // Default: false
radicale: boolean // Default: false
}
Resource Configuration¶
resources¶
Type:
Record<string, ResourceRequirements>Description: CPU and memory resources for each component
{
[componentName]: {
requests: {
cpu: string, // e.g., '100m'
memory: string // e.g., '256Mi'
},
limits: {
cpu: string,
memory: string
}
}
}
Components:
front- Nginx reverse proxyadmin- Web admin interfacepostfix- SMTP serverdovecot- IMAP/POP3 serverrspamd- Spam filterwebmail- Roundcube webmailclamav- Antivirus scannerwebdav- CalDAV/CardDAV serverfetchmail- External mail fetching
Storage Configuration¶
storage¶
Type:
StorageConfigDescription: Persistent storage configuration
{
data: {
size: string, // e.g., '10Gi'
storageClassName?: string // e.g., 'longhorn'
},
mail: {
size: string,
storageClassName?: string
},
// Additional storage for components
}
Image Configuration¶
images¶
Type:
Record<string, ImageConfig>Description: Container image configuration for each component
{
[componentName]: {
repository: string,
tag: string,
pullPolicy?: 'Always' | 'IfNotPresent' | 'Never'
}
}
Additional Configuration¶
[Content placeholder for docwriter]
Additional configuration sections to be documented:
Network/service configuration
Security settings
TLS/certificate configuration
SMTP relay settings
Admin user configuration
Feature flags
Environment variable overrides
See Also¶
Configure Constructs - Basic configuration guide
Scale Resources - Adjust CPU and memory
Customize Storage - Configure PVC sizes
Enable Optional Components - Component toggles
Manage Secrets - Create required secrets
Architecture - Understanding configuration design
This is a placeholder reference. Content will be expanded by the docwriter with:
Complete TypeScript interface definitions
All available options with types and defaults
Validation rules and constraints
Migration guides for version changes
Examples for each option