From 93de6bf9ed923bf2d0991db61c2fd127f6e984ae Mon Sep 17 00:00:00 2001 From: Izorkin Date: Sat, 14 May 2022 18:12:55 +0300 Subject: [PATCH] nixos/mastodon: add smtp assertions --- nixos/modules/services/web-apps/mastodon.nix | 24 ++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix index 1e9e04dcc055..c3220a03d33f 100644 --- a/nixos/modules/services/web-apps/mastodon.nix +++ b/nixos/modules/services/web-apps/mastodon.nix @@ -372,17 +372,19 @@ in { }; user = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + example = "mastodon@example.com"; description = lib.mdDoc "SMTP login name."; - type = lib.types.str; }; passwordFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + default = null; + example = "/var/lib/mastodon/secrets/smtp-password"; description = lib.mdDoc '' Path to file containing the SMTP password. ''; - default = "/var/lib/mastodon/secrets/smtp-password"; - example = "/run/keys/mastodon-smtp-password"; - type = lib.types.str; }; }; @@ -467,6 +469,20 @@ in { assertion = databaseActuallyCreateLocally -> (cfg.user == cfg.database.user); message = ''For local automatic database provisioning (services.mastodon.database.createLocally == true) with peer authentication (services.mastodon.database.host == "/run/postgresql") to work services.mastodon.user and services.mastodon.database.user must be identical.''; } + { + assertion = cfg.smtp.authenticate -> (cfg.smtp.user != null); + message = '' + needs to be set if + is enabled. + ''; + } + { + assertion = cfg.smtp.authenticate -> (cfg.smtp.passwordFile != null); + message = '' + needs to be set if + is enabled. + ''; + } ]; systemd.services.mastodon-init-dirs = {