nix-config/modules/fedi/default.nix

79 lines
1.9 KiB
Nix

{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkIf;
inherit ((pkgs.formats.elixirConf {}).lib) mkMap;
cfg = config.conf.fedi;
akkoma-fe = pkgs.callPackage ./akkoma-fe.nix {};
neocat = pkgs.callPackage ./neocat {};
neofox = pkgs.callPackage ./neofox {};
blobfox = pkgs.callPackage ./blobfox {};
blobhaj = pkgs.callPackage ./blobhaj {};
blobhajFlags = pkgs.callPackage ./blobhajFlags {};
favicon = pkgs.callPackage ./favicon.nix {};
in {
imports = [
./iceshrimp
];
config = mkIf cfg.enable {
services.akkoma = {
enable = true;
frontends.primary = {
name = "akkoma_fe";
ref = "stable";
package = akkoma-fe;
};
config = {
":pleroma" = {
":instance" = {
name = "miras fedi";
description = "miras akkoma instance";
email = cfg.email;
registration_open = false;
};
":frontend_configurations" = {
"akkoma_fe" = {
theme = "rosepine";
logo = "/static/logo.png";
};
};
# Initial block list copied from void.rehab
":mrf_simple" = {
reject = mkMap (import ./blocklist.nix);
};
"Pleroma.Web.Endpoint" = {
url.host = cfg.domain.full;
};
"Pleroma.Upload" = {
base_url = "https://${cfg.domain.full}/media/";
};
};
};
extraStatic = {
"emoji/neocat" = neocat;
"emoji/neofox" = neofox;
"emoji/blobfox" = blobfox;
"emoji/blobhaj" = blobhaj;
"emoji/blobhajFlags" = blobhajFlags;
"static/favicon.png" = favicon;
"static/logo.png" = favicon;
"favicon.png" = favicon;
};
nginx = {
serverName = cfg.domain.full;
useACMEHost = cfg.domain.base;
forceSSL = true;
};
};
};
}