about summary refs log tree commit diff
path: root/modules/server/mail/default.nix
blob: c3f3f1774b7114f8cc69e57786f66b49906e441b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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";
      ensureDBOwnership = true;
    }
  ];

  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 = "postgresql:///mailman";
  services.mailman.extraConfig = ''

    [antispam]
    header_checks:
      X-Spam-Flag: YES

    [logging.template]
    level: debug
  '';

  services.mailman.webSettings.ACCOUNT_ADAPTER = "django_mailman3.views.user_adapter.DisableSignupAdapter";
  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.SHOW_ANONYMOUS_SUBSCRIBE_FORM = false;
  services.mailman.webSettings.SOCIALACCOUNT_PROVIDERS = {};
  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";
}