diff --git a/modules/services/web-servers/apache-httpd/mediawiki.nix b/modules/services/web-servers/apache-httpd/mediawiki.nix index 784f560ee370..4b005a1b1cd2 100644 --- a/modules/services/web-servers/apache-httpd/mediawiki.nix +++ b/modules/services/web-servers/apache-httpd/mediawiki.nix @@ -57,6 +57,11 @@ let $wgArticlePath = "${config.articleUrlPrefix}/$1"; ''} + ${optionalString config.enableUploads '' + $wgEnableUploads = true; + $wgUploadDirectory = "${config.uploadDir}"; + ''} + ${config.extraConfig} ?> ''; @@ -96,6 +101,16 @@ in extraConfig = '' + ${optionalString config.enableUploads '' + Alias ${config.urlPrefix}/images ${config.uploadDir} + + + Order allow,deny + Allow from all + Options -Indexes + + ''} + Alias ${config.urlPrefix} ${mediawikiRoot} @@ -205,6 +220,17 @@ in ''; }; + enableUploads = mkOption { + default = false; + description = "Whether to enable file uploads."; + }; + + uploadDir = mkOption { + default = throw "You must specify `uploadDir'."; + example = "/data/mediawiki-upload"; + description = "The directory that stores uploaded files."; + }; + extraConfig = mkOption { default = ""; example =