akkoma: various stuff

This commit is contained in:
emily 2024-11-02 15:59:22 +01:00
parent 0ba6f7874b
commit 06bd495dd9
Signed by: emily
GPG key ID: F6F4C66207FCF995

View file

@ -7,6 +7,7 @@
}; };
services.akkoma = { services.akkoma = {
enable = true; enable = true;
extraPackages = with pkgs; [ exiftool ffmpeg-headless imagemagick ];
extraStatic."emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg; extraStatic."emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg;
extraStatic."static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON { extraStatic."static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON {
@ -130,7 +131,7 @@
}; };
":media_preview_proxy" = { ":media_preview_proxy" = {
enabled = false; enabled = true;
thumbnail_max_width = 1920; thumbnail_max_width = 1920;
thumbnail_max_height = 1080; thumbnail_max_height = 1080;
min_content_length = 128 * 1024; min_content_length = 128 * 1024;
@ -145,10 +146,13 @@
"Pleroma.Upload.Filter.AnonymizeFilename" "Pleroma.Upload.Filter.AnonymizeFilename"
]; ];
":mrf".policies = map mkRaw [ ":mrf" = {
"Pleroma.Web.ActivityPub.MRF.SimplePolicy" transparency = true;
"Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy" policies = map mkRaw [
]; "Pleroma.Web.ActivityPub.MRF.SimplePolicy"
"Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy"
];
};
":mrf_simple" = { ":mrf_simple" = {
reject = mkMap { reject = mkMap {
@ -177,13 +181,12 @@
}; };
}; };
":mrf_object_age".threshold = 90 * 24 * 3600; ":mrf_object_age".threshold = 180 * 24 * 3600;
":frontend_configurations" = { ":frontend_configurations" = {
pleroma_fe = mkMap { pleroma_fe = mkMap {
background = "/images/sylvia-ritter-15012323.avif"; background = "/images/sylvia-ritter-15012323.avif";
collapseMessageWithSubject = true; collapseMessageWithSubject = true;
hideSiteFavicon = true;
streaming = true; streaming = true;
webPushNotifications = true; webPushNotifications = true;
useStreamingApi = true; useStreamingApi = true;
@ -195,7 +198,7 @@
modalOnRepeat = true; modalOnRepeat = true;
minimalScopesMode = true; minimalScopesMode = true;
redirectRootNoLogin = "/about"; redirectRootNoLogin = "/about";
translationLanguage = "EN"; translationLanguage = "en";
theme = "elly-mod"; theme = "elly-mod";
}; };
}; };
@ -239,11 +242,21 @@
''; '';
}; };
kyouma.nginx.virtualHosts = { kyouma.nginx.virtualHosts = {
"florp.social".locations."/".proxyPass = "http://unix:/run/akkoma/socket"; "florp.social" = {
locations."/" = {
proxyPass = "http://unix:/run/akkoma/socket";
proxyWebsockets = true;
};
locations."^/media(/.*)$".return = "308 https://media.florp.social$1";
locations."^/proxy(/.*)$".return = "308 https://cache.florp.social$1";
};
"media.florp.social" = { "media.florp.social" = {
useACMEHost = "florp.social"; useACMEHost = "florp.social";
locations."/".proxyPass = "http://unix:/run/akkoma/socket"; locations."/" = {
proxyPass = "http://unix:/run/akkoma/socket";
extraConfig = "rewrite ^(?!/media)(.*)$ /media$1;";
};
}; };
"cache.florp.social" = { "cache.florp.social" = {
@ -251,6 +264,7 @@
locations."/" = { locations."/" = {
proxyPass = "http://unix:/run/akkoma/socket"; proxyPass = "http://unix:/run/akkoma/socket";
extraConfig = '' extraConfig = ''
rewrite ^(?!/proxy)(.*)$ /proxy$1;
proxy_cache akkoma_media_cache; proxy_cache akkoma_media_cache;
# Cache objects in slices of 1 MiB # Cache objects in slices of 1 MiB