diff options
-rw-r--r-- | modules/server/mail/default.nix | 81 | ||||
-rw-r--r-- | sys/atuin.nix | 1 |
2 files changed, 82 insertions, 0 deletions
diff --git a/modules/server/mail/default.nix b/modules/server/mail/default.nix new file mode 100644 index 000000000000..5d96223f5d61 --- /dev/null +++ b/modules/server/mail/default.nix @@ -0,0 +1,81 @@ +{ lib, pkgs, config, ... }: + +let + inherit (pkgs) runCommand; + + mailmanCfg = config.services.mailman; +in + +{ + services.postgresql.enable = true; + services.postgresql.ensureDatabases = [ "mailman" ]; + services.postgresql.ensureUsers = [ + { + name = "mailman"; + ensurePermissions = { + "DATABASE mailman" = "ALL PRIVILEGES"; + }; + } + ]; + + services.mailman.enable = true; + + services.mailman.siteOwner = "postmaster@spectrum-os.org"; + services.mailman.webHosts = [ "spectrum-os.org" ]; + services.mailman.hyperkitty.enable = true; + services.mailman.hyperkitty.baseUrl = "http://localhost:18507/lists/hyperkitty/"; + services.mailman.settings.database.class = "mailman.database.postgresql.PostgreSQLDatabase"; + services.mailman.settings.database.url = "postgres:///mailman"; + services.mailman.extraConfig = '' + + [antispam] + header_checks: + X-Spam-Flag: YES + + [logging.template] + level: debug + ''; + + services.mailman.webSettings.ADMINS = [ [ "Alyssa Ross" "hi@alyssa.is" ] ]; + services.mailman.webSettings.ALLOWED_HOSTS = [ "localhost" "127.0.0.1" "spectrum-os.org" ]; + services.mailman.webSettings.INSTALLED_APPS = [ + "hyperkitty" + "postorius" + "django_mailman3" + "django.contrib.admin" + "django.contrib.auth" + "django.contrib.contenttypes" + "django.contrib.sessions" + "django.contrib.sites" + "django.contrib.messages" + "django.contrib.staticfiles" + "rest_framework" + "django_gravatar" + "compressor" + "haystack" + "django_extensions" + "django_q" + "allauth" + "allauth.account" + "allauth.socialaccount" + ]; + services.mailman.webSettings.USE_X_FORWARDED_HOST = true; + services.mailman.webSettings.SECURE_PROXY_SSL_HEADER = [ "HTTP_X_FORWARDED_SCHEME" "https" ]; + services.mailman.webSettings.SESSION_COOKIE_SECURE = true; + services.mailman.webSettings.SECURE_CONTENT_TYPE_NOSNIFF = true; + services.mailman.webSettings.SECURE_BROWSER_XSS_FILTER = true; + services.mailman.webSettings.CSRF_COOKIE_SECURE = true; + services.mailman.webSettings.CSRF_COOKIE_HTTPONLY = true; + services.mailman.webSettings.LANGUAGE_CODE = "en-gb"; + services.mailman.webSettings.STATIC_URL = "/lists/static/"; + services.mailman.webSettings.DEFAULT_FROM_EMAIL = "postmaster@spectrum-os.org"; + services.mailman.webSettings.SERVER_EMAIL = "postmaster@spectrum-os.org"; + services.mailman.webSettings.SOCIALACCOUNT_PROVIDERS = null; + services.mailman.webSettings.COMPRESS_CSS_HASHING_METHOD = "content"; + services.mailman.webSettings.FILTER_VHOST = true; + + systemd.services.mailman.after = [ "postgresql.service" ]; + + services.mailman.serve.enable = true; + services.mailman.serve.virtualRoot = "/lists"; +} diff --git a/sys/atuin.nix b/sys/atuin.nix index e1ac6bf612ce..afaea3987d44 100644 --- a/sys/atuin.nix +++ b/sys/atuin.nix @@ -127,6 +127,7 @@ in ../modules/server/ftp ../modules/server/git-http-backend ../modules/server/irc + ../modules/server/mail ../modules/server/nginx ../modules/server/nixpk.gs ../modules/server/pushmail |