diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix
index e9ed53857d8..0a5b6047bb5 100644
--- a/nixos/modules/services/web-apps/mediawiki.nix
+++ b/nixos/modules/services/web-apps/mediawiki.nix
@@ -29,7 +29,7 @@ let
'') cfg.skins)}
${concatStringsSep "\n" (mapAttrsToList (k: v: ''
- ln -s ${v} $out/share/mediawiki/extensions/${k}
+ ln -s ${if v != null then v else "$src/share/mediawiki/extensions/${k}"} $out/share/mediawiki/extensions/${k}
'') cfg.extensions)}
'';
};
@@ -204,17 +204,28 @@ in
default = {};
type = types.attrsOf types.path;
description = ''
- List of paths whose content is copied to the 'skins'
- subdirectory of the MediaWiki installation.
+ Attribute set of paths whose content is copied to the skins
+ subdirectory of the MediaWiki installation in addition to the default skins.
'';
};
extensions = mkOption {
default = {};
- type = types.attrsOf types.path;
+ type = types.attrsOf (types.nullOr types.path);
description = ''
- List of paths whose content is copied to the 'extensions'
- subdirectory of the MediaWiki installation.
+ Attribute set of paths whose content is copied to the extensions
+ subdirectory of the MediaWiki installation and enabled in configuration.
+
+ Use null instead of path to enable extensions that are part of MediaWiki.
+ '';
+ example = literalExample ''
+ {
+ Matomo = pkgs.fetchzip {
+ url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz";
+ sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b";
+ };
+ ParserFunctions = null;
+ }
'';
};
diff --git a/nixos/tests/mediawiki.nix b/nixos/tests/mediawiki.nix
index 9468c1de8cc..008682310cf 100644
--- a/nixos/tests/mediawiki.nix
+++ b/nixos/tests/mediawiki.nix
@@ -8,6 +8,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
services.mediawiki.virtualHost.hostName = "localhost";
services.mediawiki.virtualHost.adminAddr = "root@example.com";
services.mediawiki.passwordFile = pkgs.writeText "password" "correcthorsebatterystaple";
+ services.mediawiki.extensions = {
+ Matomo = pkgs.fetchzip {
+ url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz";
+ sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b";
+ };
+ ParserFunctions = null;
+ };
};
testScript = ''