{ pkgs, lib, ... }: let poorObfuscation = y: x: "${x}@${y}"; federation-blocklist = lib.importTOML ./akkoma-assets/blocklist.toml; # ifd3f/infra wrapFile = name: path: (pkgs.runCommand name { inherit path; } '' cp -r "$path" "$out" ''); in { services.akkoma = { enable = true; initDb.enable = true; extraStatic = { "static/logo.png" = wrapFile "logo.png" ./akkoma-assets/logo.png; }; config = let inherit ((pkgs.formats.elixirConf { }).lib) mkRaw mkMap; in { ":pleroma"."Pleroma.Web.Endpoint".url.host = "social.sefidel.com"; ":pleroma".":media_proxy".enabled = false; ":pleroma".":instance" = { name = "Akkoma at sefidel"; description = "Private akkoma instance"; email = poorObfuscation "sefidel.com" "postmaster"; notify_email = poorObfuscation "sefidel.com" "postmaster"; registrations_open = false; invites_enabled = true; limit = 5000; }; ":pleroma".":frontend_configurations" = { pleroma_fe = mkMap { logo = "/static/logo.png"; }; }; ":pleroma".":mrf" = { policies = map mkRaw [ "Pleroma.Web.ActivityPub.MRF.SimplePolicy" ]; }; ":pleroma".":mrf_simple" = { followers_only = mkMap federation-blocklist.followers_only; media_nsfw = mkMap federation-blocklist.media_nsfw; reject = mkMap federation-blocklist.reject; }; }; nginx = { forceSSL = true; useACMEHost = "sefidel.com"; }; }; }