I am writing to announce mediawiki-containers [1], a simple installer for MediaWiki with VisualEditor, Parsoid, RESTBase and other services, using Linux containers.
The main goal of this project is to make it really easy to set up and maintain a fully featured MediaWiki system on a wide range of platforms. The project is in an early stage, but already supports full installation on Ubuntu, Debian and other systemd-based distributions, as well as starting containers on OS X via the Docker toolbox [6].
These are the basic steps involved in setting up your own MediaWiki instance with VisualEditor:
1) Get a Linux VM in labs or from a hosting provider, and select Debian (Jessie or newer) or Ubuntu 15.04+ as the distribution. Commercial VMs with reasonable specifications cost about $5 per month [2]. 2) Log into your VM, and run this command [7]: curl https://raw.githubusercontent.com/wikimedia/mediawiki-containers/master/medi... | sudo bash 3) Answer the questions in the installer.
Here is a screencast of an installer run, illustrating steps 2) and 3): https://people.wikimedia.org/~gwicke/mediawiki-containers-install.ogv
Under the hood, mediawiki-containers uses several Docker containers: - wikimedia/mediawiki [3] with MediaWiki 1.27-wmf9 and VisualEditor. - wikimedia/mediawiki-node-services [4] with Parsoid and RESTBase running in a single process to minimize memory use. - MariaDB as the database backend [5].
Data and configurations are stored on the host system in /srv/mediawiki-containers/data, which means that upgrading is as simple as fetching the latest container images by re-running the installer. Optionally, the installer can set up automated nightly updates, which helps to keep your wiki installation up to date.
The project is brand new, so there is a fair chance that you will encounter bugs. Please report issues at https://phabricator.wikimedia.org/maniphest/task/create/?projects=mediawiki-... .
Here are some ideas we have for the next steps:
- Forward `/api/rest_v1/` to RESTBase & configure RESTBase updates. Enable Wikitext / HTML switching in VE. - Improve security: - Run each container under a different, unprivileged user. - Secure the install / update process with signatures. - Add popular extensions, and streamline the support for custom extensions. - Add services like mathoid, graphoid. - Use the HHVM PHP runtime instead of Zend, possibly using ideas from https://github.com/kasperisager/php-dockerized. - Support developer use cases: - Optionally mount code volumes from the host system. - Improve configuration customization support. - Support for more distributions.
Let us know what you think & what you would like to see next at https://phabricator.wikimedia.org/T92826.
Happy holidays,
Gabriel Wicke and the Services team
[1]: https://github.com/wikimedia/mediawiki-containers [2]: http://serverbear.com/compare?Sort=BearScore&Order=desc&Server+Type=... [3]: https://github.com/wikimedia/mediawiki-docker and https://hub.docker.com/r/wikimedia/mediawiki [4]: https://github.com/wikimedia/mediawiki-node-services and https://hub.docker.com/r/wikimedia/mediawiki-node-services/ [5]: https://hub.docker.com/_/mariadb/ [6]: https://docs.docker.com/mac/step_one/ [7]: We agree that `curl | bash` has its risks, but it is hard to beat for simplicity. The Chef project has a good discussion of pros, cons & alternatives at https://www.chef.io/blog/2015/07/16/5-ways-to-deal-with-the-install-sh-curl-... .