modularize media wiki

This commit is contained in:
Fabian Montero 2026-02-03 14:46:33 -06:00
parent 23758a11c1
commit 84c4c6556e
3 changed files with 116 additions and 0 deletions

View file

@ -0,0 +1,72 @@
{lib, ...}:
with lib.types; {
sys = {
hostName = lib.mkOption {
type = str;
description = "used for nginx virtualhost. no protocol";
example = "wiki.posixlycorrect.com";
};
name = lib.mkOption {
type = str;
description = "name of the wiki";
example = "posixlycorrect wiki";
};
passwordFile = lib.mkOption {
type = types.path;
description = "path of passwordfile for mediawiki";
example = "/run/keys/mediawiki-password";
};
skins = lib.mkOption {
type = types.attrsOf (types.nullOr str);
description = "skins for mediawiki";
example = ''{
citizen = "flakes.mediawikiSkinCitizen";
};'';
};
extraConfig = lib.mkOption {
type = str;
example = ''
# Disable anonymous editing and account creation
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgCitizenThemeDefault = 'dark';
$wgCitizenShowPageTools = 'login';
$wgLogos = [
'icon' => "https://example.com/favicon.png",
'1x' => "https://example.com/favicon.png",
'2x' => "https://example.com/favicon.png",
];
$wgEnableEmail = false; #TODO: arreglar esto
$wgNoReplyAddress = 'mediawiki@example.com';
$wgEmergencyContact = 'mediawiki@example.com';
$wgPasswordSender = 'mediawiki@example.com';
'';
};
extensions = lib.mkOption {
type = types.attrsOf (types.nullOr types.path);
description = "some extensions are included and can enabled by passing null";
example = ''{
VisualEditor = null;
CategoryTree = null;
CiteThisPage = null;
Scribunto = null;
Cite = null;
CodeEditor = null;
Math = null;
MultimediaViewer = null;
PdfHandler = null;
Poem = null;
SecureLinkFixer = null;
WikiEditor = null;
ParserFunctions = null;
};'';
};
};
}