Contributing

Miraheze is made up of volunteers, ordinary people just like you! Whether you know little or lots about MediaWiki, you can help! Below are many opportunities you can take to help volunteer on Miraheze.

If you want to help us with taking on different roles (technical/non-technical), you can also check out our Miraheze Vacancies‎ page for ways to help.

...helping out local communities
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.

Don't want to create a wiki? Look for a wiki that already exists and which covers your topic! Miraheze hosts a variety of wikis, from computers to TV shows, you're sure to find a wiki that suits your needs! Check out wikidiscover>Special:WikiDiscover|WikiDiscover and the gazetteer>Special:MyLanguage/Gazetteer of wikis|Gazetteer of wikis to find wikis you might be interested in.

...helping out on Meta
Another easy way of helping out is by helping out on this wiki, Miraheze Meta. On Miraheze Meta, issues pertaining to the global community are discussed. You can help out by answering any question which you may know the answer to. Most questions on Miraheze Meta are asked on the noticeboards. There are currently 3 noticeboards where users can solicit help, each one focuses on a different topic and are labeled accordingly:


 * Community noticeboard - Any question regarding wikis or Miraheze is asked on here, like help with ManageWiki, help with styling a wiki, help with a template, etc. This noticeboard also serves to help start community discussion about topics. If you know the answer to anything, don't be afraid to reply.
 * Meta Administrators' noticeboard - Any issue regarding this wiki (Meta) is discussed on here, such as soliciting help in banning an vandalism-only account, marking pages as translatable, asking for local rights, among other local things. This noticeboard is not for global actions.
 * Stewards' noticeboard - Any question or issue that might need Steward intervention (like banning vandalism-only accounts, reporting an abusive user, starting a sockpuppet investigation, or a global rename) is asked on here. Sometimes, what users ask isn't necessarily something that needs a Stewards reply, it can be as simple as asking for help to change a logo. Even though it is the Stewards' noticeboard, that doesn't mean you can't help anyone on there yourself; don't be afraid to reply and give them pointers! By doing so, you help our overworked Stewards focus better their attention to more serious issues instead of having to go through every single thread and reply to every single little request.

If you ever see a question that was asked on the wrong noticeboard (like a global lock asked in the Meta Administrators' noticeboard instead of the Stewards' noticeboard), be bold and move it to the appropriate noticeboard. Even if your edit is reverted, at least you gain experience and learn how to sort issues!

Translations
Do you know a language? Help Miraheze out by translating pages! On most pages, you can click "Translate this page" on the top of the page which will bring you to a screen that helps you translate the page. If the page is already translated, you can still go over it and make sure there's no spelling mistakes. Every translation or review is helpful!

You can also translate Miraheze extensions. For more info on this, see translate-extensions>Special:MyLanguage/Tech:Translating Miraheze extensions|Translating Miraheze extensions.

...helping on Discord and IRC
Not all questions are asked on Meta, many prefer to ask on Discord and IRC. Don't be afraid to stop on by and answer any question someone might have. Most IRC channels relay to Discord meaning that you can talk with people on IRC in real time. For more info on connecting to Discord and IRC, check out their respective pages.

...helping fight global vandalism
While fighting global vandalism may seem hard, especially because Miraheze hosts wikis, it actually isn't! Miraheze employs AbuseFilter which stops most vandalism dead in its tracks. This, along with other suspicious activity, is reported on the IRC channel. You can monitor this feed for any possible vandalism or spam and report it on. Note that both channels are relayed on Discord. A Steward will review it and globally lock the user if needed. If an edit isn't stopped by AbuseFilter, you can also manually go into the wiki and revert it yourself. If you do, just make sure to include in the summary that you were reverting vandalism or else you may be erroneously labeled a vandal yourself!

Even if a vandalism-only account is stopped by AbuseFilter, you should still report it to the Stewards to prevent the account from trying to bypass the filter, succeeding and flooding a wiki. To report them, you can make a new section on the Stewards' noticeboard or you can report them on.

Not all wikis are enrolled in the global antivandalism program, some have purposefully opted-out. These are usually larger wikis that employ lots of administrators who keep an eye out for vandalism at all times. Private wikis are also not reported on the CVT feed. For more info on this, see Counter Vandalism Team.

...helping create wikis
Wiki creators, as their names state, are volunteers who help in the creation of wikis. They go through every request and make sure they appropriate and don't break the Content Policy.

The more wiki creators we have, the faster we can process new wiki requests, which creates a better experience for Miraheze users and helps ensure our community keeps growing and thrives.

To become a Wiki Creator, 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 the community to discuss and opine on there before deciding to approve or decline the request.

''Interested in becoming a Wiki creator? Check out wiki-creators>Special:MyLanguage/Meta:Wiki creators|Meta:Wiki creators and wiki-creators-guide>Special:MyLanguage/Meta:Wiki creators guide|Meta:Wiki creators guide.''

...helping out on Phabricator
Phabricator is Miraheze's ticketing system. While the many tasks on there require a system administrator, some don't. A user might need help enabling an extension or might have not be able to find a setting in ManageWiki. In these cases, if you know the answer, you're more than welcome to reply to the task. In some cases, if you are certain that the issue has been resolved, you can close the task. If you're new on Phabricator, it's recommended that you wait and learn what types of tasks are closed when, to prevent you from accidentally closing a task that hasn't actually been resolved.

Even if a task involves something technical like importing a wiki dump, you can still help on the task by sorting the tags correctly for the task. For more information on tags, see Phabricator.

...helping out technically
While the previous ways to contribute were some that don't require technical expertise, the following do. If you know how to help out technically, you're more than welcome to!

...on GitHub
Miraheze hosts all of its configurations config-repo>github:miraheze/mw-config|in a GitHub config repo (see github>Tech:GitHub|this page for additional info). Whenever a change needs to be done, these configuration files are updated. When these configurations are updated in any of the repositories hosted on GitHub, the changes are automatically deployed to the servers hosting Miraheze. Historically, feature changes were done by sending a request on the Request features page or by adding a GitHub merge request. This is no longer the case, you can do most configuration changes on ManageWiki. That doesn't mean you can't help out on GitHub though, it's not rocket science!

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

Guidelines & Tips
Most of this section (except for a little at the end) is easy 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 things to do is 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.

Some extensions require additional setup to work. In that case, a system administrator will handle the change.

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|Adding a new extension.

...internally
Miraheze runs on Debian: 15 VPSs hosted by RamNode and 1 VPS hosted by 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.