{ pkgs, lib, config, ... }: let inherit (config.users) groups; domain = "sourcephile.fr"; in { services.public-inbox = { enable = true; path = with pkgs; [ /*spamassassin*/ ]; #mda.args = [ "--no-precheck" ]; mda.spamCheck = null; watch.spamCheck = null; #config.publicinbox.css = # [ "href=https://${domain}/lists/public-inbox.css" ]; http.mounts = [ "https://mails.${domain}/inbox" "https://public-inbox.${domain}/inbox" ]; wwwListing = "match=domain"; config.publicinbox = { css = [ "href=https://mails.${domain}/style/light.css" ]; }; nntpServer = [ "nntps://news.${domain}" ]; nntp.cert = "/var/lib/acme/${domain}/fullchain.pem"; nntp.key = "/var/lib/acme/${domain}/key.pem"; nntp.extraGroups = [ groups.acme.name ]; inboxes = { bistrot = { address = [ "bistrot@${domain}" "public-inbox+bistrot@${domain}" ]; description = '' bistrot@${domain} : discussions publiques sans sujet particulier, simplement pour la camaraderie à bord de Sourcephile. ''; url = "https://mails.${domain}/inbox/bistrot"; newsgroup = "inbox.comp.sourcephile.bistrot"; }; entraide = { address = [ "entraide@${domain}" "public-inbox+entraide@${domain}" ]; description = '' entraide@${domain} : discussions publiques pour l'entraide à bord de Sourcephile. ''; url = "https://mails.${domain}/inbox/entraide"; newsgroup = "inbox.comp.sourcephile.entraide"; }; environnement = { address = [ "environnement@${domain}" "public-inbox+environnement@${domain}" ]; description = '' environnement@${domain} : discussions publiques pour se soucier de l'environnement des activités de Sourcephile. ''; url = "https://mails.${domain}/inbox/environnement"; newsgroup = "inbox.comp.sourcephile.environnement"; }; infra = { address = [ "infra@${domain}" "public-inbox+infra@${domain}" ]; description = '' infra@${domain} : discussions publiques à propos de l'infrastructure, notamment informatique, de Sourcephile. ''; url = "https://mails.${domain}/inbox/infra"; newsgroup = "inbox.comp.sourcephile.infra"; }; labo = { address = [ "labo@${domain}" "public-inbox+labo@${domain}" ]; description = '' labo@${domain} : discussions publiques concernant les recherches scientifiques et développements informatiques de Sourcephile. ''; url = "https://mails.${domain}/inbox/labo"; newsgroup = "inbox.comp.sourcephile.labo"; }; membres = { address = [ "membres@${domain}" "public-inbox+membres@${domain}" ]; description = '' membres@${domain} : discussions ou annonces publiques à l'attention de l'ensemble des personnes à bord de Sourcephile. ''; url = "https://mails.${domain}/inbox/membres"; newsgroup = "inbox.comp.sourcephile.membres"; #config.coderepo = [ "sourcephile" ]; }; test = { address = [ "test@${domain}" "public-inbox+test@${domain}" ]; description = '' tests@${domain} : une adresse pour effectuer des tests de mails. ''; url = "https://mails.${domain}/inbox/test"; newsgroup = "inbox.comp.sourcephile.test"; }; }; /* config.coderepo.sourcephile-nix = { dir = "/var/lib/git/repositories/sourcephile.git"; cgitUrl = "https://${domain}/git/sourcephile"; }; */ }; security.acme.certs."${domain}" = { postRun = "systemctl reload public-inbox-nntp"; }; systemd.services.public-inbox = { wants = [ "acme-selfsigned-${domain}.service" "acme-${domain}.service"]; after = [ "acme-selfsigned-${domain}.service" ]; }; }