My Nix Configuration

[prefect.stalwart] update secrets handling

pyrox.dev 5b37b423 1e366d4e

verified
Changed files
+23 -11
systems
x86_64-linux
prefect
secrets
services
mailserver
systems/x86_64-linux/prefect/secrets/stalwart-fallback-admin-pw.age

This is a binary file and will not be displayed.

+6 -2
systems/x86_64-linux/prefect/services/mailserver/stalwart/acme.nix
···
-
{ cfg }:
{
letsencrypt = {
directory = "https://acme-staging-v02.api.letsencrypt.org/directory";
-
challenge = "http-01";
contact = [ "pyrox@pyrox.dev" ];
domains = [
"mail.pyrox.dev"
···
cache = "${cfg.dataDir}/acme/certs";
renew-before = "30d";
default = true;
};
}
···
+
# ACME for certs, using TLS-ALPN-01 Challenges(one fewer ports open)
+
# https://stalw.art/docs/server/tls/acme/configuration
+
{ cfg, sec }:
{
letsencrypt = {
directory = "https://acme-staging-v02.api.letsencrypt.org/directory";
+
challenge = "dns-01";
contact = [ "pyrox@pyrox.dev" ];
domains = [
"mail.pyrox.dev"
···
cache = "${cfg.dataDir}/acme/certs";
renew-before = "30d";
default = true;
+
provider = "desec";
+
secret = "%{file:${sec.stalwart-desec-token.path}}";
};
}
+14 -7
systems/x86_64-linux/prefect/services/mailserver/stalwart/default.nix
···
services.stalwart-mail = {
enable = true;
dataDir = "/var/lib/stalwart";
-
credentials = {
-
rsa_private_key = sec.stalwart-secret-rsa.path;
-
ed25519_private_key = sec.stalwart-secret-ed25519.path;
-
};
settings = {
tracer.stdout.level = "debug";
config = {
local-keys = [
"acme.*"
···
"resolver.*"
"server.*"
"session.*"
"storage.*"
"store.*"
"tracer.*"
···
];
};
server = import ./server.nix { inherit d; };
-
# ACME for certs, using TLS-ALPN-01 Challenges(one fewer ports open)
-
# https://stalw.art/docs/server/tls/acme/configuration
-
acme = import ./acme.nix { inherit cfg; };
# HTTP Configuration
# https://stalw.art/docs/http/overview
http = {
···
# Disable HTTP Forms submission
# https://stalw.art/docs/http/form-submission
form.enable = false;
# Storage Settings
# https://stalw.art/docs/storage/overview
store = {
···
};
stalwart-secret-ed25519 = smSecret // {
file = ../../../secrets/stalwart-secret-ed25519.age;
};
};
}
···
services.stalwart-mail = {
enable = true;
dataDir = "/var/lib/stalwart";
settings = {
tracer.stdout.level = "debug";
+
authentication.fallback-admin = {
+
user = "fallback";
+
secret = "%{file:${sec.stalwart-fallback-admin-pw.path}}";
+
};
config = {
local-keys = [
"acme.*"
···
"resolver.*"
"server.*"
"session.*"
+
"signature.*"
"storage.*"
"store.*"
"tracer.*"
···
];
};
server = import ./server.nix { inherit d; };
+
acme = import ./acme.nix { inherit cfg sec; };
# HTTP Configuration
# https://stalw.art/docs/http/overview
http = {
···
# Disable HTTP Forms submission
# https://stalw.art/docs/http/form-submission
form.enable = false;
+
# DKIM Signatures
+
signature = import ./signature.nix { inherit sec; };
# Storage Settings
# https://stalw.art/docs/storage/overview
store = {
···
};
stalwart-secret-ed25519 = smSecret // {
file = ../../../secrets/stalwart-secret-ed25519.age;
+
};
+
stalwart-desec-token = smSecret // {
+
file = ../../../secrets/stalwart-desec-token.age;
+
};
+
stalwart-fallback-admin-pw = smSecret // {
+
file = ../../../secrets/stalwart-fallback-admin-pw.age;
};
};
}
+3 -2
systems/x86_64-linux/prefect/services/mailserver/stalwart/signature.nix
···
let
headers = [
"From"
···
{
rsa = {
inherit headers;
-
private-key = "%{file:/run/credentials/stalwart-mail.service/rsa_private_key}";
domain = "pyrox.dev";
selector = "rsa-default";
algorithm = "rsa-sha256";
···
};
ed25519 = {
inherit headers;
-
private-key = "%{file:/run/credentials/stalwart-mail.service/ed25519_private_key}";
domain = "pyrox.dev";
selector = "default";
algorithm = "ed25519-sha256";
···
+
{ sec }:
let
headers = [
"From"
···
{
rsa = {
inherit headers;
+
private-key = "%{file:${sec.stalwart-secret-rsa.path}}";
domain = "pyrox.dev";
selector = "rsa-default";
algorithm = "rsa-sha256";
···
};
ed25519 = {
inherit headers;
+
private-key = "%{file:${sec.stalwart-secret-ed25519.path}}";
domain = "pyrox.dev";
selector = "default";
algorithm = "ed25519-sha256";