]> Git — Sourcephile - sourcephile-nix.git/blob - servers/mermet/public-inbox.nix
public-inbox: move to mails.sourcephile.fr
[sourcephile-nix.git] / servers / mermet / public-inbox.nix
1 { pkgs, lib, config, ... }:
2 let inherit (config.users) groups;
3 domain = "sourcephile.fr";
4 in
5 {
6 services.public-inbox = {
7 enable = true;
8 path = with pkgs; [ /*spamassassin*/ ];
9 #mda.args = [ "--no-precheck" ];
10 mda.spamCheck = null;
11 watch.spamCheck = null;
12
13 #config.publicinbox.css =
14 # [ "href=https://${domain}/lists/public-inbox.css" ];
15
16 http.mounts = [
17 "https://mails.${domain}/inbox"
18 "https://public-inbox.${domain}/inbox"
19 ];
20 wwwListing = "match=domain";
21 config.publicinbox = {
22 css = [ "href=https://mails.${domain}/style/light.css" ];
23 };
24
25 nntpServer = [ "nntps://news.${domain}" ];
26 nntp.cert = "/var/lib/acme/${domain}/fullchain.pem";
27 nntp.key = "/var/lib/acme/${domain}/key.pem";
28 nntp.extraGroups = [ groups.acme.name ];
29
30 inboxes = {
31 bistrot = {
32 address = [
33 "bistrot@${domain}"
34 "public-inbox+bistrot@${domain}"
35 ];
36 description = ''
37 bistrot@${domain} :
38 discussions publiques sans sujet particulier,
39 simplement pour la camaraderie à bord de Sourcephile.
40 '';
41 url = "https://mails.${domain}/inbox/bistrot";
42 newsgroup = "inbox.comp.sourcephile.bistrot";
43 };
44 entraide = {
45 address = [
46 "entraide@${domain}"
47 "public-inbox+entraide@${domain}"
48 ];
49 description = ''
50 entraide@${domain} :
51 discussions publiques pour l'entraide à bord de Sourcephile.
52 '';
53 url = "https://mails.${domain}/inbox/entraide";
54 newsgroup = "inbox.comp.sourcephile.entraide";
55 };
56 environnement = {
57 address = [
58 "environnement@${domain}"
59 "public-inbox+environnement@${domain}"
60 ];
61 description = ''
62 environnement@${domain} :
63 discussions publiques pour se soucier de l'environnement
64 des activités de Sourcephile.
65 '';
66 url = "https://mails.${domain}/inbox/environnement";
67 newsgroup = "inbox.comp.sourcephile.environnement";
68 };
69 infra = {
70 address = [
71 "infra@${domain}"
72 "public-inbox+infra@${domain}"
73 ];
74 description = ''
75 infra@${domain} :
76 discussions publiques à propos de l'infrastructure,
77 notamment informatique, de Sourcephile.
78 '';
79 url = "https://mails.${domain}/inbox/infra";
80 newsgroup = "inbox.comp.sourcephile.infra";
81 };
82 labo = {
83 address = [
84 "labo@${domain}"
85 "public-inbox+labo@${domain}"
86 ];
87 description = ''
88 labo@${domain} :
89 discussions publiques concernant les recherches scientifiques
90 et développements informatiques de Sourcephile.
91 '';
92 url = "https://mails.${domain}/inbox/labo";
93 newsgroup = "inbox.comp.sourcephile.labo";
94 };
95 membres = {
96 address = [
97 "membres@${domain}"
98 "public-inbox+membres@${domain}"
99 ];
100 description = ''
101 membres@${domain} :
102 discussions ou annonces publiques à l'attention
103 de l'ensemble des personnes à bord de Sourcephile.
104 '';
105 url = "https://mails.${domain}/inbox/membres";
106 newsgroup = "inbox.comp.sourcephile.membres";
107 #config.coderepo = [ "sourcephile" ];
108 };
109 test = {
110 address = [
111 "test@${domain}"
112 "public-inbox+test@${domain}"
113 ];
114 description = ''
115 tests@${domain} :
116 une adresse pour effectuer des tests de mails.
117 '';
118 url = "https://mails.${domain}/inbox/test";
119 newsgroup = "inbox.comp.sourcephile.test";
120 };
121 };
122
123 /*
124 config.coderepo.sourcephile-nix = {
125 dir = "/var/lib/git/repositories/sourcephile.git";
126 cgitUrl = "https://${domain}/git/sourcephile";
127 };
128 */
129 };
130 security.acme.certs."${domain}" = {
131 postRun = "systemctl reload public-inbox-nntp";
132 };
133 systemd.services.public-inbox = {
134 wants = [ "acme-selfsigned-${domain}.service" "acme-${domain}.service"];
135 after = [ "acme-selfsigned-${domain}.service" ];
136 };
137 }