Meza/Installing additional extensions

Meza comes pre-built with many extensions, but additional extensions can be added to an installation. To do so:


 * 1) Add the extensions to the   configuration file
 * 2) Run   where "env" is your environment name (probably "monolith")

Adding extensions
Extensions can be added to  in the following ways. If adding your first extension, please make sure the part that says  (an empty list) is changed to. Then add extensions as follows.

Legacy extensions
If the extension you're trying to install has documentation on mediawiki.org saying to put a  statement into , then extension uses the legacy loading method. To add it, include  as follows:

Composer installation
If the extension says to use Composer to install it, use the following format: Note: composer installation won't automatically add the wfLoadExtension so if that's needed (e.g. Lingo) then simply specify it in the 'config' section because the config section gets output to Extensions.php.

Limiting to specific wikis
Additionally,  is able to limit the inclusion of extensions to specific wikis as follows. This would limit Extension:CommentStreams to only be loaded by the "robo" and "cronus" wikis.

Extensions that require a separate Composer install step
Some extensions, like Extension:Elastica, say that in addition to downloading the code you must also  into the   directory and then run. To make Meza handle this for you, add  to your extension configuration:

Note: Elastica is installed on Meza by default, so this is for example only.

Extensions that require a Git submodule step
Some extensions, perhaps only Extension:VisualEditor and Extension:Widgets, say that in addition to downloading the code you must also  into the extension directory then run. To make Meza handle this for you, add  to the extension's configuration:

Note: Meza installs Visual Editor for you by default.

Extensions from private repositories
In order to use extensions from private Git repositories, use the public SSH key of user meza-ansible (root in older versions of Meza). In GitLab this key is set as a "deploy key" in the extension's settings. For GitHub private repos, deploy keys can only be used for a single repo, so add meza-ansible's public key to your account, or else GitHub recommends that you setup a separate 'machine account' and invite that account to your project. To get meza-ansible's public key, do:

Then copy the output of the last command into GitLab's deploy key; or to your GitHub account at https://github.com/settings/keys

Adding extensions to Meza core
There is a file very similar to  located at. This is the list of extensions installed as part of every Meza installation. If you want to request that an extension be added to Meza core you'll need to edit this file in the same way that you edit, and then submit a pull request to. The only difference in functionality between the core and local files is that  does not support limiting extensions to specific wikis.

Quick Ref for Specific Extensions
Looking for the "meza ready" code for a specific extension that is not in Meza? Feel free to check the following page to see if someone has shared their installation code:
 * Meza/Extension Installation Community Cheat-Sheet