{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; };''; }; }; }