{ 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://public-inbox.${domain}/archives" ]; wwwListing = "match=domain"; 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 = [ "public-inbox+bistrot@${domain}" "bistrot@${domain}" ]; description = '' Discussions publiques sans sujet particulier, simplement pour la camaraderie à bord de Sourcephile. ''; url = "https://${domain}/mails/archives/bistrot"; newsgroup = "inbox.comp.sourcephile.bistrot"; }; entraide = { address = [ "public-inbox+entraide@${domain}" "entraide@${domain}" ]; description = '' Discussions publiques pour l'entraide à bord de Sourcephile. ''; url = "https://public-inbox.${domain}/archives/entraide"; newsgroup = "inbox.comp.sourcephile.entraide"; }; environnement = { address = [ "public-inbox+environnement@${domain}" "environnement@${domain}" ]; description = '' Discussions publiques pour se soucier de l'environnement des activités de Sourcephile. ''; url = "https://public-inbox.${domain}/archives/environnement"; newsgroup = "inbox.comp.sourcephile.environnement"; }; infra = { address = [ "public-inbox+infra@${domain}" "infra@${domain}" ]; description = '' Discussions publiques à propos de l'infrastructure, notamment informatique, de Sourcephile. ''; url = "https://public-inbox.${domain}/archives/infra"; newsgroup = "inbox.comp.sourcephile.infra"; }; labo = { address = [ "public-inbox+labo@${domain}" "labo@${domain}" ]; description = '' Discussions publiques concernant les recherches scientifiques et développements informatiques de Sourcephile. ''; url = "https://public-inbox.${domain}/archives/labo"; newsgroup = "inbox.comp.sourcephile.labo"; }; membres = { address = [ "public-inbox+membres@${domain}" "membres@${domain}" ]; description = '' Discussions ou annonces publiques à l'attention de l'ensemble des personnes à bord de Sourcephile. ''; url = "https://public-inbox.${domain}/archives/membres"; newsgroup = "inbox.comp.sourcephile.membres"; #config.coderepo = [ "sourcephile" ]; }; }; /* 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" ]; }; }