init
This commit is contained in:
commit
642869ce9b
27 changed files with 1414 additions and 0 deletions
109
modules/mediawiki-base.nix
Normal file
109
modules/mediawiki-base.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
config,
|
||||
hostMeta,
|
||||
siteConfig,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.mediawiki = {
|
||||
enable = true;
|
||||
name = siteConfig.wikiName;
|
||||
url = "https://${hostMeta.publicDomain}";
|
||||
webserver = "none";
|
||||
passwordFile = config.age.secrets.mediawiki-admin-password.path;
|
||||
|
||||
database = {
|
||||
type = "mysql";
|
||||
name = siteConfig.database.name;
|
||||
user = siteConfig.database.mediawikiUser;
|
||||
passwordFile = config.age.secrets.mysql-mediawiki.path;
|
||||
socket = "/run/mysqld/mysqld.sock";
|
||||
createLocally = false;
|
||||
};
|
||||
|
||||
extensions = {
|
||||
ParserFunctions = null;
|
||||
WikiEditor = null;
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
$wgServer = "https://${hostMeta.publicDomain}";
|
||||
$wgSitename = "${siteConfig.wikiName}";
|
||||
$wgMetaNamespace = "${siteConfig.wikiName}";
|
||||
$wgScriptPath = "";
|
||||
$wgArticlePath = "/wiki/$1";
|
||||
$wgUsePathInfo = true;
|
||||
wfLoadSkin('Vector');
|
||||
|
||||
$wgEnableUploads = true;
|
||||
$wgEnableEmail = false;
|
||||
$wgShowIPinHeader = false;
|
||||
|
||||
$wgGroupPermissions['*']['edit'] = false;
|
||||
$wgGroupPermissions['*']['createpage'] = false;
|
||||
$wgGroupPermissions['*']['createtalk'] = false;
|
||||
$wgGroupPermissions['*']['writeapi'] = false;
|
||||
$wgGroupPermissions['*']['createaccount'] = false;
|
||||
|
||||
$wgGroupPermissions['user']['edit'] = true;
|
||||
$wgGroupPermissions['user']['createpage'] = true;
|
||||
$wgGroupPermissions['user']['createtalk'] = true;
|
||||
$wgGroupPermissions['user']['upload'] = true;
|
||||
$wgGroupPermissions['user']['writeapi'] = true;
|
||||
'';
|
||||
};
|
||||
|
||||
services.mediawiki.poolConfig =
|
||||
if hostMeta.role == "primary" then
|
||||
{
|
||||
"pm" = "dynamic";
|
||||
"pm.max_children" = 12;
|
||||
"pm.start_servers" = 3;
|
||||
"pm.min_spare_servers" = 2;
|
||||
"pm.max_spare_servers" = 4;
|
||||
"pm.max_requests" = 500;
|
||||
}
|
||||
else
|
||||
{
|
||||
"pm" = "dynamic";
|
||||
"pm.max_children" = 6;
|
||||
"pm.start_servers" = 2;
|
||||
"pm.min_spare_servers" = 1;
|
||||
"pm.max_spare_servers" = 3;
|
||||
"pm.max_requests" = 500;
|
||||
};
|
||||
|
||||
services.phpfpm.pools.mediawiki.phpOptions =
|
||||
if hostMeta.role == "primary" then
|
||||
''
|
||||
opcache.enable=1
|
||||
opcache.memory_consumption=192
|
||||
opcache.interned_strings_buffer=16
|
||||
opcache.max_accelerated_files=10000
|
||||
realpath_cache_size=4096K
|
||||
realpath_cache_ttl=600
|
||||
''
|
||||
else
|
||||
''
|
||||
opcache.enable=1
|
||||
opcache.memory_consumption=128
|
||||
opcache.interned_strings_buffer=16
|
||||
opcache.max_accelerated_files=10000
|
||||
realpath_cache_size=2048K
|
||||
realpath_cache_ttl=600
|
||||
'';
|
||||
|
||||
age.secrets.mediawiki-admin-password = {
|
||||
file = ../secrets/mediawiki-admin-password.age;
|
||||
owner = "mediawiki";
|
||||
group = "mediawiki";
|
||||
mode = "0400";
|
||||
};
|
||||
|
||||
age.secrets.mysql-mediawiki = {
|
||||
file = ../secrets/mysql-mediawiki.age;
|
||||
owner = "mediawiki";
|
||||
group = "mediawiki";
|
||||
mode = "0400";
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue