From f428198857ea1dfec7a8d98d395d89d7fd00063b Mon Sep 17 00:00:00 2001 From: Jimbo Date: Mon, 3 Mar 2025 03:41:49 -0500 Subject: [PATCH] Add autodiscovery to the mailserver --- .../services/server/mailserver/default.nix | 1 + .../mailserver/go-autoconfig/default.nix | 20 +++++++++++++++++++ .../go-autoconfig/nginx/default.nix | 11 ++++++++++ .../server/mailserver/roundcube/default.nix | 14 ++++++------- 4 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 modules/system/services/server/mailserver/go-autoconfig/default.nix create mode 100644 modules/system/services/server/mailserver/go-autoconfig/nginx/default.nix diff --git a/modules/system/services/server/mailserver/default.nix b/modules/system/services/server/mailserver/default.nix index 44cf463..3265193 100644 --- a/modules/system/services/server/mailserver/default.nix +++ b/modules/system/services/server/mailserver/default.nix @@ -3,6 +3,7 @@ options.system.mailserver.enable = lib.mkEnableOption "Enable Simple NixOS Mailserver"; imports = [ + ./go-autoconfig ./roundcube ./simplenix ]; diff --git a/modules/system/services/server/mailserver/go-autoconfig/default.nix b/modules/system/services/server/mailserver/go-autoconfig/default.nix new file mode 100644 index 0000000..f9b5962 --- /dev/null +++ b/modules/system/services/server/mailserver/go-autoconfig/default.nix @@ -0,0 +1,20 @@ +{ config, ... }: +{ + imports = [ ./nginx ]; + + services.go-autoconfig = { + enable = config.system.mailserver.enable; + settings = { + service_addr = ":1323"; + domain = "autoconfig.nixfox.ca"; + imap = { + server = "mx.nixfox.ca"; + port = 143; + }; + smtp = { + server = "mx.nixfox.ca"; + port = 587; + }; + }; + }; +} diff --git a/modules/system/services/server/mailserver/go-autoconfig/nginx/default.nix b/modules/system/services/server/mailserver/go-autoconfig/nginx/default.nix new file mode 100644 index 0000000..04c92b3 --- /dev/null +++ b/modules/system/services/server/mailserver/go-autoconfig/nginx/default.nix @@ -0,0 +1,11 @@ +{ config, lib, ... }: +{ + services.nginx.virtualHosts."autoconfig.nixfox.ca" = lib.mkIf config.mailserver.enable { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:1323"; + proxyWebsockets = true; + }; + }; +} diff --git a/modules/system/services/server/mailserver/roundcube/default.nix b/modules/system/services/server/mailserver/roundcube/default.nix index a738cbe..b0ad851 100644 --- a/modules/system/services/server/mailserver/roundcube/default.nix +++ b/modules/system/services/server/mailserver/roundcube/default.nix @@ -1,12 +1,12 @@ { config, ... }: { services.roundcube = { - enable = config.system.mailserver.enable; - hostName = "mail.nixfox.ca"; - extraConfig = '' - $config['smtp_server'] = "tls://mx.nixfox.ca"; - $config['smtp_user'] = "%u"; - $config['smtp_pass'] = "%p"; - ''; + enable = config.system.mailserver.enable; + hostName = "mail.nixfox.ca"; + extraConfig = '' + $config['smtp_server'] = "tls://mx.nixfox.ca"; + $config['smtp_user'] = "%u"; + $config['smtp_pass'] = "%p"; + ''; }; }