diff --git a/config/services/akkoma/default.nix b/config/services/akkoma/default.nix index af03b23..c9d0d85 100644 --- a/config/services/akkoma/default.nix +++ b/config/services/akkoma/default.nix @@ -7,6 +7,7 @@ }; services.akkoma = { enable = true; + extraPackages = with pkgs; [ exiftool ffmpeg-headless imagemagick ]; extraStatic."emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg; extraStatic."static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON { @@ -130,7 +131,7 @@ }; ":media_preview_proxy" = { - enabled = false; + enabled = true; thumbnail_max_width = 1920; thumbnail_max_height = 1080; min_content_length = 128 * 1024; @@ -145,10 +146,13 @@ "Pleroma.Upload.Filter.AnonymizeFilename" ]; - ":mrf".policies = map mkRaw [ - "Pleroma.Web.ActivityPub.MRF.SimplePolicy" - "Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy" - ]; + ":mrf" = { + transparency = true; + policies = map mkRaw [ + "Pleroma.Web.ActivityPub.MRF.SimplePolicy" + "Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy" + ]; + }; ":mrf_simple" = { reject = mkMap { @@ -177,13 +181,12 @@ }; }; - ":mrf_object_age".threshold = 90 * 24 * 3600; + ":mrf_object_age".threshold = 180 * 24 * 3600; ":frontend_configurations" = { pleroma_fe = mkMap { background = "/images/sylvia-ritter-15012323.avif"; collapseMessageWithSubject = true; - hideSiteFavicon = true; streaming = true; webPushNotifications = true; useStreamingApi = true; @@ -195,7 +198,7 @@ modalOnRepeat = true; minimalScopesMode = true; redirectRootNoLogin = "/about"; - translationLanguage = "EN"; + translationLanguage = "en"; theme = "elly-mod"; }; }; @@ -239,11 +242,21 @@ ''; }; 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" = { 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" = { @@ -251,6 +264,7 @@ locations."/" = { proxyPass = "http://unix:/run/akkoma/socket"; extraConfig = '' + rewrite ^(?!/proxy)(.*)$ /proxy$1; proxy_cache akkoma_media_cache; # Cache objects in slices of 1 MiB diff --git a/flake.lock b/flake.lock index 1cf6ff1..c8a5aa3 100644 --- a/flake.lock +++ b/flake.lock @@ -327,11 +327,11 @@ ] }, "locked": { - "lastModified": 1727826117, - "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", "type": "github" }, "original": { @@ -693,11 +693,11 @@ ] }, "locked": { - "lastModified": 1730184279, - "narHash": "sha256-6OB+WWR6gnaWiqSS28aMJypKeK7Pjc2Wm6L0MtOrTuA=", + "lastModified": 1730448474, + "narHash": "sha256-qE/cYKBhzxHMtKtLK3hlSR3uzO1pWPGLrBuQK7r0CHc=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "b379bd4d872d159e5189053ce9a4adf86d56db4b", + "rev": "683d0c4cd1102dcccfa3f835565378c7f3cbe05e", "type": "github" }, "original": { @@ -795,11 +795,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1730368399, - "narHash": "sha256-F8vJtG389i9fp3k2/UDYHMed3PLCJYfxCqwiVP7b9ig=", + "lastModified": 1730537918, + "narHash": "sha256-GJB1/aaTnAtt9sso/EQ77TAGJ/rt6uvlP0RqZFnWue8=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "da14839ac5f38ee6adbdb4e6db09b5eef6d6ccdc", + "rev": "f6e0cd5c47d150c4718199084e5764f968f1b560", "type": "github" }, "original": { @@ -957,11 +957,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1730499477, - "narHash": "sha256-olt0Sx4alDxv3ko9BgbV3SsE2KQ/Tf0/Az1Fr9s2Y6U=", + "lastModified": 1730569492, + "narHash": "sha256-NByr7l7JetL9kIrdCOcRqBu+lAkruYXETp1DMiDHNQs=", "owner": "nix-community", "repo": "nixvim", - "rev": "356896f58dde22ee16481b7c954e340dceec340d", + "rev": "6f210158b03b01a1fd44bf3968165e6da80635ce", "type": "github" }, "original": { @@ -980,11 +980,11 @@ ] }, "locked": { - "lastModified": 1730337772, - "narHash": "sha256-uTxvqDohfG85+zldO5Tf1B+fuAF8ZhMouNwG5S6OAnA=", + "lastModified": 1730515563, + "narHash": "sha256-8lklUZRV7nwkPLF3roxzi4C2oyLydDXyAzAnDvjkOms=", "owner": "NuschtOS", "repo": "search", - "rev": "4e0a7a95a3df3333771abc4df6a656e7baf67106", + "rev": "9e22bd742480916ff5d0ab20ca2522eaa3fa061e", "type": "github" }, "original": {