Tech:Organisation/mw-admins

DRAFT This is a guide for all MediaWiki admins.

Rules

 * 1) Be respectful to other volunteers and users. You represent the Miraheze project.
 * 2) Don't suddenly change big parts of the MediaWiki infrastructure (e.g. way how things are done in the current style) without discussing it with other people.
 * 3) Don't use the servers for non-Miraheze purposes.
 * 4) Don't put abnormal high load on the servers if unavoidable.
 * 5) Respect privacy. Don't publish access logs, IP addresses, content of private wikis, and PII. If in doubt, ask before publishing.
 * 6) Don't publish database passwords, private keys, etc as well.

Violation of these rules can result into warnings or revocation of access.

Maintenance scripts

 * Always run them as www-data (prefix command with "sudo -u www-data")
 * Always !log maintenance script runs in #miraheze (unless you were using sql.php, and did not execute any queries that changed the database (e.g. SELECT/DESCRIBE queries)
 * If you need to run a script on all wikis, use the foreachwikiindblist wrapper: sudo -u www-data /usr/local/bin/foreachwikiindblist /srv/mediawiki/dblist/all.dblist /srv/mediawiki/w/maintenance/yourscript.php --put-your-parameters --here
 * update.php is evil. If you need to run it while you're not doing a MediaWiki upgrade, then something is really wrong.

Enabling new extensions
See Tech:Add an extension.

Pushing configuration changes
See for the rest.
 * Ensure the PHP syntax is correct, you don't want to deploy files with syntax errors
 * When a configuration variable is changed, you should be completely aware what it does, and how it could impact a wiki security-wise.
 * There is more stuff in LocalSettings.php than just configuration variables, like this. You are allowed to edit such stuff, but if you are not familiar with its functionality, it's not recommended to touch it (or to merge pull requests that make changes to this area)

Deployment

 * When deploying a configuration change or extension, you are required to closely watch the change going live.
 * After commiting a change to the mediawiki or mw-config repo (and being sure it should work), run 'sudo /root/puppet-run' on all MediaWiki servers. It can take a while before the change is actually deployed.
 * Watch the error logs:

Monitoring errors

 * We have a lot of log files in /var/log/mediawiki, but these are the most important ones:
 * /var/log/mediawiki/debuglogs/exception.log for all MWExceptions
 * /var/log/mediawiki/php-error.log for PHP errors
 * /var/log/mediawiki/database.log for database errors
 * Pro tip: try "tail -f /var/log/mediawiki/php-error.log", it will automatically output any changes to the specified log file, so you don't have to open the log file manually a few times. Useful during a deployment.

Debugging

 * Look at the error logs
 * Try to send the failing HTTP request with the header 'X-Miraheze-Debug: 1', it could be an error that is cached in Varnish