diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-05-10 00:20:30 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-05-10 00:20:30 +0000 |
commit | f8ecc25f87667d478d7d138a0a58af861ce0db18 (patch) | |
tree | c8c42bb78033ae34e984c5dc76527af3a9571062 /modules/server | |
parent | de301d42b03ea6d8a3a838db0f138f35a181d3cc (diff) | |
download | nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.tar nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.tar.gz nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.tar.bz2 nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.tar.lz nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.tar.xz nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.tar.zst nixlib-f8ecc25f87667d478d7d138a0a58af861ce0db18.zip |
sys/atuin: enable public-inbox
Diffstat (limited to 'modules/server')
-rw-r--r-- | modules/server/mail/public-inbox/default.nix | 55 | ||||
-rw-r--r-- | modules/server/spectrum/default.nix | 5 | ||||
-rw-r--r-- | modules/server/spectrum/public-inbox/default.nix | 54 |
3 files changed, 114 insertions, 0 deletions
diff --git a/modules/server/mail/public-inbox/default.nix b/modules/server/mail/public-inbox/default.nix new file mode 100644 index 000000000000..10cf46387702 --- /dev/null +++ b/modules/server/mail/public-inbox/default.nix @@ -0,0 +1,55 @@ +{ config, pkgs, lib, ... }: + +let + public-inbox = config.services.public-inbox.package; + + public-inbox-src = pkgs.stdenv.mkDerivation { + name = "public-inbox-${public-inbox.version}-qyliss.tar.gz"; + + inherit (public-inbox) src patches; + + doBuild = false; + + installPhase = '' + cd $NIX_BUILD_TOP + mv $sourceRoot public-inbox-${public-inbox.version}-qyliss + tar cf $out public-inbox-${public-inbox.version}-qyliss + ''; + }; + + hash = with lib; + # Safe because we're just using the hash as a file name, and don't + # need the file name itself to have a dependency on the src. + builtins.unsafeDiscardStringContext + (head (splitString "-" + (last (splitString "/" public-inbox-src.outPath)))); + + tarballName = "public-inbox-${public-inbox.version}-qyliss-${hash}.tar.gz"; +in + +{ + services.public-inbox.enable = true; + services.public-inbox.path = with pkgs; [ spamassassin ]; + services.public-inbox.mda.args = [ "--no-precheck" ]; + services.public-inbox.mda.spamCheck = "spamc"; + services.public-inbox.nntp.extraGroups = [ "tls" ]; + services.public-inbox.wwwListing = "match=domain"; + + services.public-inbox.config.publicinbox.css = + [ "href=https://spectrum-os.org/lists/archives/public-inbox.css" ]; + + services.public-inbox.config.publicinbox.sourceinfo = + let + url = "https://ftp.qyliss.net/public-inbox/${tarballName}"; + in (pkgs.writeText "public-inbox-source-info.html" '' + <a href="${url}" download>${url}</a> + '').outPath; + + ftp.files."public-inbox/${tarballName}" = public-inbox-src; + + services.spamassassin.enable = true; + environment.etc."mail/spamassassin/public-inbox.pre".source = + "${public-inbox.sa_config}/root/etc/spamassassin/public-inbox.pre"; + + networking.firewall.allowedTCPPorts = [ 119 563 ]; +} diff --git a/modules/server/spectrum/default.nix b/modules/server/spectrum/default.nix new file mode 100644 index 000000000000..a6d8e88cd6a7 --- /dev/null +++ b/modules/server/spectrum/default.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + imports = [ ./public-inbox ]; +} diff --git a/modules/server/spectrum/public-inbox/default.nix b/modules/server/spectrum/public-inbox/default.nix new file mode 100644 index 000000000000..c6d92bfac57f --- /dev/null +++ b/modules/server/spectrum/public-inbox/default.nix @@ -0,0 +1,54 @@ +{ ... }: + +{ + imports = [ ../../mail/public-inbox ]; + + services.public-inbox.http.mounts = + [ "https://spectrum-os.org/lists/archives" ]; + services.public-inbox.nntp.cert = + "/var/lib/acme/spectrum-os.org/fullchain.pem"; + services.public-inbox.nntp.key = "/var/lib/acme/spectrum-os.org/key.pem"; + services.public-inbox.nntpServer = + [ "nntps://spectrum-os.org" "nntp://spectrum-os.org" ]; + + services.public-inbox.config.coderepo.nixpkgs-spectrum = { + dir = "/home/spectrum/git/nixpkgs.git"; + cgitUrl = "https://spectrum-os.org/git/nixpkgs"; + }; + + services.public-inbox.config.coderepo.www = { + dir = "/home/spectrum/git/www.git"; + cgitUrl = "https://spectrum-os.org/git/www"; + }; + + services.public-inbox.inboxes.spectrum-announce = { + address = [ + "public-inbox+spectrum-announce@spectrum-os.org" + "announce@spectrum-os.org" + ]; + description = "announcements from the spectrum developers"; + url = "https://spectrum-os.org/lists/archives/spectrum-announce"; + newsgroup = "inbox.comp.spectrum.announce"; + }; + + services.public-inbox.inboxes.spectrum-discuss = { + address = [ + "public-inbox+spectrum-discuss@spectrum-os.org" + "discuss@spectrum-os.org" + ]; + description = "general high-level discussion about spectrum"; + url = "https://spectrum-os.org/lists/archives/spectrum-discuss"; + newsgroup = "inbox.comp.spectrum.discuss"; + }; + + services.public-inbox.inboxes.spectrum-devel = { + address = [ + "public-inbox+spectrum-devel@spectrum-os.org" + "devel@spectrum-os.org" + ]; + description = "patches and low-level development discussion"; + url = "https://spectrum-os.org/lists/archives/spectrum-devel"; + newsgroup = "inbox.comp.spectrum.devel"; + config.coderepo = [ "nixpkgs-spectrum" "www" ]; + }; +} |