From 7559f30accf3fce2e02fe24fe1aad6f39f664823 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Mon, 10 Nov 2025 11:10:06 +0100 Subject: [PATCH] nixos/nextcloud: Add services.nextcloud.imaginary.enable option --- nixos/modules/services/web-apps/nextcloud.nix | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 67a756a4ea01..f88f09660165 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -956,6 +956,24 @@ in Only has an effect in Nextcloud 23 and later. ''; }; + enabledPreviewProviders = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ + "OC\\Preview\\PNG" + "OC\\Preview\\JPEG" + "OC\\Preview\\GIF" + "OC\\Preview\\BMP" + "OC\\Preview\\XBitmap" + "OC\\Preview\\Krita" + "OC\\Preview\\WebP" + "OC\\Preview\\MarkDown" + "OC\\Preview\\TXT" + "OC\\Preview\\OpenDocument" + ]; + description = '' + The preview providers that should be explicitly enabled. + ''; + }; }; }; default = { }; @@ -1025,6 +1043,8 @@ in The value can be customized for `nextcloud-cron.service` using this option. ''; }; + + imaginary.enable = lib.mkEnableOption "Imaginary"; }; config = lib.mkIf cfg.enable ( @@ -1461,6 +1481,20 @@ in port = 0; }; }) + # https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#previews + (lib.mkIf cfg.imaginary.enable { + preview_imaginary_url = "http://${config.services.imaginary.address}:${toString config.services.imaginary.port}"; + + # Imaginary replaces a few of the built-in providers, so the default value has to be adjusted. + enabledPreviewProviders = lib.mkDefault [ + "OC\\Preview\\Imaginary" + "OC\\Preview\\ImaginaryPDF" + "OC\\Preview\\Krita" + "OC\\Preview\\MarkDown" + "OC\\Preview\\TXT" + "OC\\Preview\\OpenDocument" + ]; + }) ]; }; @@ -1593,6 +1627,13 @@ in ''} ''; }; + + services.imaginary = lib.mkIf cfg.imaginary.enable { + enable = true; + # add -return-size flag recommend by Nextcloud + # https://github.com/h2non/imaginary/pull/382 + settings.return-size = true; + }; } ] );