Contributing

As you know, Miraheze is a community-run wikifarm, operated by volunteers. You can help too! If you want to help us with taking on different roles (technical/non-technical) please see below and our miraheze-vacancies‎‎>Special:MyLanguage/Miraheze Vacancies‎|Miraheze Vacancies‎ page for ways to help.

Using our services
One of the easiest ways that any user can help Miraheze is by requesting a wiki and using it. Be active, develop your own sub-community. Bring people you know to Miraheze. Also, feel free to look at wikidiscover>Special:WikiDiscover|WikiDiscover and gazetteer>Special:MyLanguage/Gazetteer of wikis|Gazetteer of wikis to find wikis you might be interested in.

Wiki creators
Wiki creators are volunteers who have learned a little bit more about the two interfaces that allow them to create wikis: request-wiki-queue>Special:RequestWikiQueue|Special:RequestWikiQueue and create-wiki>Special:CreateWiki|Special:CreateWiki.

The more wiki creators we have, the faster we can process new wiki requests, which creates a better experience for the end-user of our services.

To become a wikicreator you need to be trusted in the community, please ask for wikicreator rights rfp>Meta:Requests for permissions|here and stewards>Special:MyLanguage/Stewards|Stewards will allow discussion there before deciding to approve or decline the request.

For more information on wiki creators, please see wiki-creators>Special:MyLanguage/Meta:Wiki creators|Meta:Wiki creators and wiki-creators-guide>Special:MyLanguage/Meta:Wiki creators guide|Meta:Wiki creators guide if you'd like to become one.

Feature requests
We welcome any users to assist us with feature-requests>Special:MyLanguage/Feature requests|Feature requests. All of our configs and software used is available on config-repo>github:miraheze/mw-config|in our GitHub config repo (see github>Tech:GitHub|this page for additional info. When files are updated in any of the repositories hosted there, the changes are automatically deployed to the servers hosting Miraheze.

Anyone with a GitHub account (available for free) is able to propose file changes.

Easy start
One of the easiest ways to get started is to look at phab-open>phab:maniphest/query/open|feature requests and then editing gh-localsettings>github:miraheze/mw-config/blob/master/LocalSettings.php|the LocalSettings.php file in our Miraheze/mw-config repo. Most of this file (except for a little at the end) should be some of the easier stuff to understand. It uses nested arrays to apply settings to all wikis by default, or some wikis as coded.

The basic nesting layout is as follows:
 * Define namespace variables (close to the start, after includes)
 * wgConf (largest array)
 * Setting name (in the form of 'wgVariable' or 'wmgVariable')
 * Wiki's affected (in the form of 'dbname' or 'default' where dbname is the site's subdomain with "wiki" added to the end)
 * Setting value (the values to set. Can be a number, true/false, or an array, depending on the setting.)

Some of the easier stuff will be enabling extensions that are already installed (See the section of wgConf called extensions, which follows the format above where "Setting name" will be something like 'wmgUse Extension ' where Extension is the name of the extension to enable.

Note that some extensions like Flow and VisualEditor require additional configuration.

Installing a new extension or skin
Anyone can propose changes to the gh-miraheze-mw>github:miraheze/mediawiki|Miraheze/mediawiki repo. To install a new extension or skin not already installed (not enable one on a wiki), please see add-new-extension>Special:MyLanguage/Tech:Adding a new extension|this page.

Tweaking the servers
Miraheze purely runs on Debian: 15 VPSs hosted by <tvar|ramnode>RamNode</> and 1 VPS hosted by <tvar|backupsy>Backupsy</> (storing backups). They are mostly powered by OpenVZ, in very rare cases KVM. Our gh-server-config>github:miraheze/puppet</>|server configuration is managed by Puppet, and we work with various kinds of technologies. We use <tvar|mediawiki>MediaWiki</> with <tvar|apache>Apache</>, <tvar|gdnsd>GDNSD</>, <tvar|mariadb>MariaDB</>, <tvar|nginx>nginx</> and <tvar|varnish>Varnish</> to power the web stack. If you are familiar with one or more of the software mentioned above, we would love to hear about your experience! Extra help is always welcome, and even the smallest improvements (fixed bugs/performance, etc.) for you, can be a big improvement for us. Please get in touch with the sysadmins>Special:MyLanguage/System administrators</>|System administrators if you would like to contribute in this area or simply phab-task>phab:maniphest/task/edit/form/1</>|make a Phabricator task for it.

Translations
You can either translate pages on Meta by clicking "Translate" above or translate-extensions>Special:MyLanguage/Tech:Translating Miraheze extensions</>|translate extensions.