MediaWiki: Difference between revisions

From NixOS Wiki
imported>Onny
(Add links to other web-based wiki software)
 
(11 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[https://mediawiki.org/ {{PAGENAME}}] ([[wikipedia:en:{{PAGENAME}}]]) is available as a [[module]].
[https://mediawiki.org/ {{PAGENAME}}] ([[wikipedia:en:{{PAGENAME}}]]) is available as a [[module]].


== configuration examples ==
== Configuration Examples ==
<!--
=== Small Configuration ===
==== minimal configuration ====
 
==== basic configuration ====
 
-->
 
==== small configuration ====


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
services.mediawiki = {
services.mediawiki = {
   enable = true;
   enable = true;
   name = "Sample MediaWiki instance";
   name = "Sample MediaWiki";
   virtualHost = {
   httpd.virtualHost = {
     hostName = "example.com";
     hostName = "example.com";
     adminAddr = "admin@example.com";
     adminAddr = "admin@example.com";
   };
   };
   passwordFile = "/var/mediawiki/passwordFile"; # put the initial password for the admin account here
   # Administrator account username is admin.
  # Set initial password to "cardbotnine" for the account admin.
  passwordFile = pkgs.writeText "password" "cardbotnine";
   extraConfig = ''
   extraConfig = ''
     # Disable anonymous editing
     # Disable anonymous editing
Line 26: Line 21:


   extensions = {
   extensions = {
     VisualEditor = pkgs.fetchzip {
    # some extensions are included and can enabled by passing null
       url = "https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_37-3aeea63.tar.gz";
     VisualEditor = null;
       sha256 = "sha256:0y7yysnm64vclyj0nh18ibsbrwsycdi7f8mf8j1b991qggqnclys";
 
    # https://www.mediawiki.org/wiki/Extension:TemplateStyles
    TemplateStyles = pkgs.fetchzip {
       url = "https://extdist.wmflabs.org/dist/extensions/TemplateStyles-REL1_40-c639c7a.tar.gz";
       hash = "sha256-YBL0Cs4hDSNnoutNJSJBdLsv9zFWVkzo7m5osph8QiY=";
     };
     };
   };
   };
};
};
</syntaxhighlight>
</syntaxhighlight>
<!--
== database ==
-->


== web server ==
== Web Server ==


By default, the <code>services.mediawiki</code> module creates a <code>services.httpd.virtualHost</code> which can be configured via the <code>services.mediawiki.virtualHost</code> submodule.
By default, the <code>services.mediawiki</code> module creates a <code>services.httpd.virtualHost</code> which can be configured via the <code>services.mediawiki.httpd.virtualHost</code> submodule.


If you are using another web server (like Nginx), you can configure MediaWiki for a reverse proxy with the <code>services.mediawiki.virtualHost.listen</code> option:
If you are using another web server (like Nginx), you can configure MediaWiki for a reverse proxy with the <code>services.mediawiki.virtualHost.listen</code> option:


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
services.mediawiki.virtualHost.listen = [
services.mediawiki.httpd.virtualHost.listen = [
   {
   {
     ip = "127.0.0.1";
     ip = "127.0.0.1";
Line 55: Line 49:
</syntaxhighlight>
</syntaxhighlight>


== See also ==
Alternatively, <code>services.mediawiki.webserver</code> can be set to <code>"nginx"</code> to use nginx instead of apache.
 
== Troubleshooting ==
=== Edit php.ini ===
An fpm pool is automatically created when Mediawiki is enabled. The <code>php.ini</code> file can be modified by using <code>phpOptions</code>. The following example shows how to increase the allowed file upload size.
 
<syntaxhighlight lang="nix">
services.phpfpm.pools.mediawiki.phpOptions = ''
    upload_max_filesize = 10M
    post_max_size = 15M
'';
</syntaxhighlight>
 
== See Also ==


* [[DokuWiki]], simple PHP- and web-based wiki software which uses file based storage for its content.
* [https://github.com/NixOS/nixos-wiki-infra Configuration of the NixOS wiki]
* [https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/mediawiki.nix nixos/tests/mediawiki.nix]
* [[Dokuwiki]], simple PHP- and web-based wiki software which uses file based storage for its content.
* [[Outline]], a modern web based wiki and knowledge base for teams.
* [[Outline]], a modern web based wiki and knowledge base for teams.


[[Category:Guide]]
[[Category:Guide]]
[[Category:Server]]
[[Category:Web Applications]]
[[Category:Web Applications]]

Latest revision as of 19:16, 24 April 2024

MediaWiki (wikipedia:en:MediaWiki) is available as a module.

Configuration Examples

Small Configuration

services.mediawiki = {
  enable = true;
  name = "Sample MediaWiki";
  httpd.virtualHost = {
    hostName = "example.com";
    adminAddr = "admin@example.com";
  };
  # Administrator account username is admin.
  # Set initial password to "cardbotnine" for the account admin.
  passwordFile = pkgs.writeText "password" "cardbotnine";
  extraConfig = ''
    # Disable anonymous editing
    $wgGroupPermissions['*']['edit'] = false;
  '';

  extensions = {
    # some extensions are included and can enabled by passing null
    VisualEditor = null;

    # https://www.mediawiki.org/wiki/Extension:TemplateStyles
    TemplateStyles = pkgs.fetchzip {
      url = "https://extdist.wmflabs.org/dist/extensions/TemplateStyles-REL1_40-c639c7a.tar.gz";
      hash = "sha256-YBL0Cs4hDSNnoutNJSJBdLsv9zFWVkzo7m5osph8QiY=";
    };
  };
};

Web Server

By default, the services.mediawiki module creates a services.httpd.virtualHost which can be configured via the services.mediawiki.httpd.virtualHost submodule.

If you are using another web server (like Nginx), you can configure MediaWiki for a reverse proxy with the services.mediawiki.virtualHost.listen option:

services.mediawiki.httpd.virtualHost.listen = [
  {
    ip = "127.0.0.1";
    port = 8080;
    ssl = false;
  }
];

Alternatively, services.mediawiki.webserver can be set to "nginx" to use nginx instead of apache.

Troubleshooting

Edit php.ini

An fpm pool is automatically created when Mediawiki is enabled. The php.ini file can be modified by using phpOptions. The following example shows how to increase the allowed file upload size.

services.phpfpm.pools.mediawiki.phpOptions = ''
    upload_max_filesize = 10M
    post_max_size = 15M
'';

See Also