Wikibase/Maintaining
Maintaining a Wikibase instance
editOn this page you'll find some resources for gaining some insight into your Wikibase instance and to help keep it healthy and up to date.
Architecture overview
editFirst, take a look at our table and diagram:
|
|
|
Docker tooling
editThe best tools for managing your Docker install are the ones you used to get it going in the first place: docker and docker compose. This manual can’t possibly replace a grounding in Docker, so check out Docker’s own command references for docker compose and the docker engine.
That said, here are some starter commands that might come in handy.
Before you begin
edit- Container names created using
docker compose
begin with the basename of the directory in which they were created with the firstdocker compose up
invocation. The example container names below begin withwbdocker_
because the examples were run in a directory namedwbdocker
. - As of 2023,
docker-compose
(with hyphen) as a separate command has been deprecated in favor ofdocker compose
(without hyphen), an argument to the maindocker
command. - The commands below omit the explicit mention of
docker-compose.yml
and presume that you used the minimal install method. If you used the extended install method, you will need to specify every config file to be included, adding-f docker-compose.yml -f docker-compose.extra.yml
to any invocations ofdocker compose
.
Get a command shell on a container
editYou won’t need it for typical Wikibase activity, but for Docker beginners here’s one very useful command that connects to a running container:
docker exec -it <container name> bash
Copy a file to your local directory
editdocker cp wbdocker_wikibase_1:/var/www/html/LocalSettings.php LocalSettings.php
This also works in the other direction, and the combination is useful for, say, grabbing your LocalSettings.php, editing it and putting it right back.
docker cp LocalSettings.php wbdocker_wikibase_1:/var/www/html/LocalSettings.php
Read Adam Shorland’s excellent blog post for more detail on modifying files on containers.
Stop the Docker containers
editThis command stops the Docker containers, leaving the machines (and of course all data) intact:
docker compose stop
As you might imagine, you can use docker compose start
to start them again.
Delete the containers while preserving data
editThis command removes the containers but preserves all data in MySQL, MediaWiki and the query service in Docker volumes.
docker compose down --remove-orphans
Delete everything
editdocker compose down --volumes
Logs
editEach application in the Wikibase cluster has its own log output. Consult each service’s own documentation to learn how to read its logs.
In the directory where you placed your docker-compose.yml
file, run the docker compose logs
command and the name of the service (check the table above) to see its logs.
For example:
user@host:~/docker$ docker compose logs -f --tail=100 mysql mysql_1 | 2019-12-31 10:00:00+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server started. mysql_1 | 2019-12-31 10:00:00+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' ...
Backup and restore
editThe data in your Wikibase instance is valuable. What would happen if your datacenter burnt down? How long would it take to rebuild? Regular backups and tested restores of data are vital.
Generally, there are two bodies of data you’ll need to back up: the MediaWiki/Wikibase filesystem and, more importantly, the MySQL database. First and foremost, we recommend reading the Wikibase Docker install doc to get the lay of the land.
Docker level
editSince this is a Docker install, backup using Docker tools is recommended.
Docker-level backup is explained in some detail here. It involves backing up the Docker volumes and dumping out the database with mysqldump.
For a helpful overview of Docker data backup and restore, including the use of the docker save
and docker load
commands, read this excellent StackOverflow post.
It’s been updated several times since its original posting in 2014 and constitutes a great tour and jumping-off point for the docker command-line reference linked above.
On-container level
editBackup on the container level is not an easy proposition; we cover it here mainly to present a more complete picture of MediaWiki and Wikibase under the hood.
To that end, read the documentation on Manual:Backing up a wiki , bearing in mind that the work needs to be done from within the containers (cf. Docker tooling above) and the data extracted and placed somewhere safe outside of Docker.
Wiki tools
editWikibase is an extension of MediaWiki. Much of the functionality you’ll be working with is actually that of MediaWiki, so consult the Manual:Contents and the Sysadmin hub . Of particular note:
- Help:Contents - User guide
- Manual:User rights - User rights management
- Manual:Administrators - Wiki admin guide
Updating
editKeeping software up to date is the only way to obtain new features, not to mention how important it is to apply bug and security fixes.
To update Wikibase on Docker, read our upgrade documentation. [permalink]
Updating a manual install of the Wikibase suite isn't as straightforward: it involves upgrading MediaWiki itself (see the MediaWiki update documentation) and then the individual software components.