82 lines
2.5 KiB
Text
82 lines
2.5 KiB
Text
|
|
let _presets = (import "schemas/lib/concerns_presets.ncl").presets in
|
||
|
|
|
||
|
|
{
|
||
|
|
stalwart | default = {
|
||
|
|
name | default = "stalwart",
|
||
|
|
version | default = "0.16.0",
|
||
|
|
image | default = "ghcr.io/stalwartlabs/stalwart:v0.16.0",
|
||
|
|
namespace | default = "mail",
|
||
|
|
hostname | default = "mail.example.com",
|
||
|
|
domain | default = "example.com",
|
||
|
|
data_dir | default = "/var/lib/stalwart",
|
||
|
|
node | default = "",
|
||
|
|
lb_ipam_ip | default = "",
|
||
|
|
tls_secret | default = "stalwart-tls",
|
||
|
|
cluster_issuer | default = "letsencrypt-prod",
|
||
|
|
storage_class | default = "hcloud-volumes",
|
||
|
|
mode | default = 'cluster,
|
||
|
|
|
||
|
|
smtp_port | default = 25,
|
||
|
|
smtps_port | default = 465,
|
||
|
|
submission_port | default = 587,
|
||
|
|
imaps_port | default = 993,
|
||
|
|
http_port | default = 8080,
|
||
|
|
|
||
|
|
relay = {
|
||
|
|
host | default = "",
|
||
|
|
port | default = 587,
|
||
|
|
tls | default = true,
|
||
|
|
name | default = "ses",
|
||
|
|
},
|
||
|
|
|
||
|
|
requires | default = {
|
||
|
|
storage = { size = "20Gi", persistent = true },
|
||
|
|
ports = [
|
||
|
|
{ port = 25, exposure = 'public },
|
||
|
|
{ port = 465, exposure = 'public },
|
||
|
|
{ port = 587, exposure = 'public },
|
||
|
|
{ port = 993, exposure = 'public },
|
||
|
|
{ port = 8080, exposure = 'internal },
|
||
|
|
],
|
||
|
|
credentials = ["RELAY_USERNAME", "RELAY_PASSWORD", "ADMIN_PASSWORD"],
|
||
|
|
},
|
||
|
|
|
||
|
|
provides | default = {
|
||
|
|
service = "stalwart",
|
||
|
|
ports = [25, 465, 587, 993],
|
||
|
|
endpoints = [],
|
||
|
|
},
|
||
|
|
|
||
|
|
operations | default = {
|
||
|
|
install = true,
|
||
|
|
update = true,
|
||
|
|
delete = true,
|
||
|
|
backup = true,
|
||
|
|
restore = true,
|
||
|
|
health = true,
|
||
|
|
config = true,
|
||
|
|
restart = true,
|
||
|
|
},
|
||
|
|
|
||
|
|
# ServiceConcerns default — Stalwart mail server; tls_endpoint_with_acme preset.
|
||
|
|
concerns | default = (_presets.tls_endpoint_with_acme {
|
||
|
|
tls_secret = "stalwart-tls",
|
||
|
|
cluster_issuer = "letsencrypt-prod",
|
||
|
|
hostnames = [],
|
||
|
|
dns_internal = [],
|
||
|
|
dns_zone = "",
|
||
|
|
acme_server = "https://acme-v02.api.letsencrypt.org/directory",
|
||
|
|
acme_email = "",
|
||
|
|
cert_secret_ref = "",
|
||
|
|
cert_provider = 'cloudflare,
|
||
|
|
backup_backlog_ref = "BACKUP-STALWART-001",
|
||
|
|
}) & {
|
||
|
|
backup | force = {
|
||
|
|
kind = 'pending,
|
||
|
|
reason = "BackupPolicy declared at workspace level (mail data + DB; per-domain or per-mailbox scopes)",
|
||
|
|
backlog_ref = "BACKUP-STALWART-001",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
}
|