RationalWiki:Server documentation
Jump to navigation
Jump to search
System overview[edit]
- DNS registration is handled exclusively by Tmtoulouse
- The DNS nameserver is at Linode, as are the servers. Tmtoulouse, David Gerard and Tim Starling have access to the Linode dashboard.
- David Gerard and Tim Starling have root access to the servers.
- rationalwiki.org, ru.rationalwiki.org and staging.rationalwiki.org go to cache1, which is a caching proxy which forwards to apache3
- Various minor domain names, and MX mail handling, go to apache1.
apache1[edit]
apache1 is the old server. It is handling some miscellaneous services that we haven't yet migrated off it.
cache1[edit]
cache1 runs Varnish. There's also Apache, which serves only to accept SSL connections and forward them to Varnish.
apache3[edit]
apache3 is the MediaWiki server. It is running Ubuntu 16.04.
- Partitioned with the bulk of available space in /bulk
- Apache 2.4
- PHP 7 as apache module
- php7.0-bcmath php7.0-curl php7.0-intl php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-readline php7.0-tidy php7.0-xml php-zip
- post_max_size = 60M
- upload_max_filesize = 50M
- composer
- imagemagick
- Images aliased to /bulk/images/$host
- ElasticSearch 1.7.6 from deb (not apt) since that version is required by the version of elastica pulled in by CirrusSearch in the REL1_27 branch
- DATA_DIR=/bulk/elasticsearch
- openjdk-8-jre-headless (tried 9, didn't work)
- memcached
- texvc locally compiled
- MariaDB
- innodb_buffer_pool_size = 6G, as in apache1
- innodb_log_file_size = 160M to prevent errors on import
- datadir=/bulk/mysql
- postfix
- inet_interfaces = loopback-only
- /etc/rsyslog.d/11-postfix-rwlocal.conf makes /var/log/mail.log, this was broken in the default rsyslog config
- librsvg2-bin
- big list of fonts, in rw-config
MediaWiki[edit]
- MW 1.27 (LTS)
- /srv/rw_common/config holds RationalWiki configuration, it is a git checkout of the rw-config GitHub repository
- contains server config and Apache config
- /srv/rw_common/core has the MediaWiki core
- /srv/rw_common/public_html has the document root of both rationalwiki.org and ru.rationalwiki.org. It is a git checkout of the rw-docroot GitHub repository. But hardly anything is actually in here, most things are aliased to different directories.
- /srv/rw_common/extensions has separate git checkouts for each MediaWiki extension
- /srv/rw_common/skins has separate git checkouts for each MediaWiki skin
- Some of the extension repos have local commits (e.g. bugfix cherry picks), so you can't trivially wipe them out and rebuild them. But you can run git pull --rebase.
- Running config/bin/minor-update will run a git pull --rebase on core, extensions, skins and config. If there is a security update of MediaWiki, running this should be sufficient to update to it.
- /srv/rw_staging has a complete and separate MediaWiki installation, mostly identical to /srv/rw_common. It is used for staging.rationalwiki.org. So you can test minor changes and branch merges by first pulling them to rw_staging, then testing staging.rationalwiki.org, then pulling to rw_common. Theoretically we could have git remotes pointing from one to the other, a couple of these already exist.
- Job queue runs via cron: cron.d/mw-job-runner. Runs once per minute, with flock to prevent multiple execution.