reNixos/viola/services/stalwart.nix
s0me1newithhand7s 5e96dac497 viola: fixes
Signed-off-by: s0me1newithhand7s <git+me@hand7s.org>
2026-02-08 22:53:56 +03:00

135 lines
2.8 KiB
Nix

_: {
services = {
stalwart-mail = {
enable = true;
settings = {
acme = {
"cloudflare" = {
default = true;
challenge = "dns-01";
provider = "cloudflare";
origin = "hand7s.org";
secret = "${mail_secret}";
contact = [
"me@hand7s.org"
];
email = "me@hand7s.org";
directory = "https://acme-staging-v02.api.letsencrypt.org/directory";
domains = [
"mail.hand7s.org"
];
};
};
server = {
hostname = "mail.hand7s.org";
proxy = {
trusted-networks = [
"::1"
"100.109.213.170/16"
];
};
listener = {
"lmtp" = {
bind = "[::]:24";
protocol = "lmtp";
};
"smtp" = {
bind = "[::]:25";
protocol = "smtp";
};
"pop3" = {
bind = "[::]:110";
protocol = "pop3";
};
"imap" = {
bind = "[::]:143";
protocol = "imap";
};
"submissions" = {
bind = "[::]:465";
protocol = "smtp";
};
"submission" = {
bind = "[::]:587";
protocol = "smtp";
};
"imaptls" = {
bind = "[::]:993";
protocol = "smtp";
};
"pop3s" = {
bind = "[::]:995";
protocol = "pop3";
};
"sieve" = {
bind = "[::]:4190";
protocol = "managesieve";
};
"management" = {
protocol = "http";
bind = [
"127.0.0.1:8980"
];
};
};
};
lookup = {
default = {
hostname = "mail.hand7s.org";
domain = "hand7s.org";
};
};
storage = {
data = "postgresql";
blob = "s3";
fts = "postgresql";
lookup = "redis";
};
store = {
# nope
# i'm not redacting my main config
# here to show it here
# refer to stalwart mail
# ty
};
authentication = {
fallback-admin = {
user = "admin";
secret = "admin";
};
};
tracer = {
journal = {
enable = true;
type = "journal";
level = "debug";
};
console = {
enable = true;
type = "console";
level = "trace";
};
};
};
};
};
}