A collection of Wikibase services installed via Docker Compose V2:
- Wikibase
- Query Service
- QuickStatements
- OpenRefine
- Reconcile Service
Based on the example of wikibase-release-pipeline repository.
All the services are accessed through a single URL through the https protocol configured using a Let's Encrypt certificate.
- Install Docker Compose V2.
- A DNS name for your server.
-
Move to the
services
folder. -
Configure parameters.
-
Replace at least the following parameters in .env file.
SITENAME
. Sitename for your site.VIRTUAL_HOST
. Your server dns name.LETSENCRYPT_EMAIL
. An email to use with LetsEncrypt.MW_ADMIN_EMAIL
. The Wikibase admin email.MW_ADMIN_PASS
. Wikibase password.MW_SECRET_KEY
.DB_PASS
. Internal database password.DB_ROOT_PASS
. Theroot
user database password.
-
Apply custom parameters.
. .env envsubst '$SITENAME,$VIRTUAL_HOST' < wiki/LocalSettings.php.template > wiki/LocalSettings.php envsubst '$SITENAME,$VIRTUAL_HOST' < wiki/pages/MediaWiki\:SideBar.template > wiki/pages/MediaWiki\:SideBar envsubst '$SITENAME,$VIRTUAL_HOST' < reconcile/config.py.template > reconcile/config.py
-
-
Replace your logo. Replace the
wiki/wiki.png
image for your own logo. -
Create suite.
docker compose up -d
- Wikibase:
https://${VIRTUAL_HOST}/wiki/
- Query service:
https://${VIRTUAL_HOST}/query/
- Quickstatements:
https://${VIRTUAL_HOST}/qs/
- Reconcile service:
https://${VIRTUAL_HOST}/reconcile/
- OpenRefine:
https://${VIRTUAL_HOST}/openrefine/
- OpenRefine (files):
https://${VIRTUAL_HOST}/openrefine-data/
docker compose stop
docker compose start
docker compose start
This is a backup at docker volume level, so if some service is upgraded to a new version, backward compatibility is not guaranteed.
The backup is stored inside ~/backup
folder.
./backup.sh
Restore a previous backup.
./restore.sh <backup folder name>
- Access to:
https://${VIRTUAL_HOST}/wiki/MediaWiki:SideBar
. - Edit the page with the content from your
wiki/pages/MediaWiki:SideBar
.
- Edit the your
wiki/LocalSettings.php
and add the following lines and restart the services.
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
Check ACME companion logs for more details:
docker logs services-acme-companion-1
In case you see a [rate limits|https://letsencrypt.org/docs/rate-limits/] error, try to enable LetsEncrypt debug during your tests to avoid exceeding the rate limits.
Uncomment LETS_ENCRYPT_TEST: true
in docker-compose.proxy.yml
and restart the services.
Check logs for more details:
docker logs services-wdqs-updater-1
If you can see an error like: java.lang.IllegalStateException: RDF store reports the last update time is before the minimum safe poll time.
,
uncomment parameter WIKIBASE_MAX_DAYS_BACK
in .env
file setting an enough number of days and restart the services.