summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/web-apps
diff options
context:
space:
mode:
authortcmal <me@aria.rip>2024-03-30 19:14:37 +0000
committertcmal <me@aria.rip>2024-04-09 13:58:03 +0100
commitd598b5d88da2fc8cfaa839a05986dd5990acd043 (patch)
tree75fc7fec8b51da7a35f0686e88d5c698e9930a96 /nixos/modules/services/web-apps
parent855667eadc206242c1bfe5e379243193dceca1f2 (diff)
nixos/akkoma: check that upload and media proxy base url is specified
new versions of akkoma require the upload base url to be specified in order for updates to work properly. this will be a breaking change in 24.05, but for now a reasonable default is set.
Diffstat (limited to 'nixos/modules/services/web-apps')
-rw-r--r--nixos/modules/services/web-apps/akkoma.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/nixos/modules/services/web-apps/akkoma.nix b/nixos/modules/services/web-apps/akkoma.nix
index 4cd9e2664378..f55134f49bfd 100644
--- a/nixos/modules/services/web-apps/akkoma.nix
+++ b/nixos/modules/services/web-apps/akkoma.nix
@@ -764,6 +764,21 @@ in {
};
};
+ "Pleroma.Upload" = let
+ httpConf = cfg.config.":pleroma"."Pleroma.Web.Endpoint".url;
+ in {
+ base_url = mkOption {
+ type = types.nonEmptyStr;
+ default = if lib.versionOlder config.system.stateVersion "24.05"
+ then "${httpConf.scheme}://${httpConf.host}:${builtins.toString httpConf.port}/media/"
+ else null;
+ description = mdDoc ''
+ Base path which uploads will be stored at.
+ Whilst this can just be set to a subdirectory of the main domain, it is now recommended to use a different subdomain.
+ '';
+ };
+ };
+
":frontends" = mkOption {
type = elixirValue;
default = mapAttrs
@@ -781,6 +796,30 @@ in {
[{option}`config.services.akkoma.frontends`](#opt-services.akkoma.frontends).
'';
};
+
+
+ ":media_proxy" = let
+ httpConf = cfg.config.":pleroma"."Pleroma.Web.Endpoint".url;
+ in {
+ enabled = mkOption {
+ type = types.bool;
+ default = false;
+ description = mdDoc ''
+ Whether to enable proxying of remote media through the instance's proxy.
+ '';
+ };
+ base_url = mkOption {
+ type = types.nullOr types.nonEmptyStr;
+ default = if lib.versionOlder config.system.stateVersion "24.05"
+ then "${httpConf.scheme}://${httpConf.host}:${builtins.toString httpConf.port}/media/"
+ else null;
+ description = mdDoc ''
+ Base path for the media proxy.
+ Whilst this can just be set to a subdirectory of the main domain, it is now recommended to use a different subdomain.
+ '';
+ };
+ };
+
};
":web_push_encryption" = mkOption {
@@ -904,6 +943,9 @@ in {
};
config = mkIf cfg.enable {
+ assertions = optionals (cfg.config.":pleroma".":media_proxy".enabled && cfg.config.":pleroma".":media_proxy".base_url == null) [''
+ `services.akkoma.config.":pleroma".":media_proxy".base_url` must be set when the media proxy is enabled.
+ ''];
warnings = optionals (with config.security; (!sudo.enable) && (!sudo-rs.enable)) [''
The pleroma_ctl wrapper enabled by the installWrapper option relies on
sudo, which appears to have been disabled through security.sudo.enable.