stack.basicstack.de/apps/stalwart/stalwart-config.yaml

89 lines
2.2 KiB
YAML
Raw Normal View History

---
apiVersion: v1
kind: ConfigMap
metadata:
name: stalwart-config
namespace: stalwart
data:
stalwart.toml: |
#
# Stalwart Mail Server Configuration
#
# DEV-476: primary store is PostgreSQL (see stalwart-bootstrap-config.yaml).
# Note: the container starts with `--config /etc/stalwart/config.json`, so
# this stalwart.toml is not read at runtime for a live pod — the bootstrap
# JSON is authoritative. Kept in sync here as documentation and for any
# one-shot tooling that references the toml.
[store]
data = "postgres"
[store.postgres]
type = "postgresql"
host = "stalwart-postgres"
port = 5432
database = "stalwart"
user = "stalwart"
password = "%{env:PGPASSWORD}%"
tls.enable = false
#
# Server Configuration
#
[server]
hostname = "mail.basicstack.de"
# HTTP Listener (Web UI and API)
[server.listener.http]
bind = ["0.0.0.0:8080"]
protocol = "http"
# Security: Allow internal cluster IPs for Traefik ingress
# Pod network CIDR: 10.244.0.0/16
[server.listener.http.security]
allowed-ips = ["10.244.0.0/16", "127.0.0.1/32"]
# SMTP Listener (Port 25)
[server.listener.smtp]
bind = ["0.0.0.0:25"]
protocol = "smtp"
# Security: Allow internal cluster IPs for Traefik ingress
[server.listener.smtp.security]
allowed-ips = ["10.244.0.0/16", "127.0.0.1/32"]
# Submission Listener (Port 587 with STARTTLS)
[server.listener.submission]
bind = ["0.0.0.0:587"]
protocol = "smtp"
# Security: Allow internal cluster IPs for Traefik ingress
[server.listener.submission.security]
allowed-ips = ["10.244.0.0/16", "127.0.0.1/32"]
# IMAPS Listener (Port 993 with TLS)
[server.listener.imaps]
bind = ["0.0.0.0:993"]
protocol = "imap"
tls.implicit = true
# Security: Allow internal cluster IPs for Traefik ingress
[server.listener.imaps.security]
allowed-ips = ["10.244.0.0/16", "127.0.0.1/32"]
#
# TLS Configuration
#
[server.tls]
certificate = "file:///etc/stalwart/certs/tls.crt"
private-key = "file:///etc/stalwart/certs/tls.key"
#
# Logging
#
[tracing.level]
default = "info"