forked from deepState/trivionomicon
72 lines
2 KiB
Nix
72 lines
2 KiB
Nix
{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;
|
|
};'';
|
|
};
|
|
};
|
|
}
|