Docker Compose · Wikibase · GPL v2

Auxiliary data services
for self-hosted Wikibase

A production-ready Docker Compose stack that adds SPARQL querying, full-text search, and batch editing to an existing Wikibase installation running on a native LAMP stack. No MediaWiki or MariaDB containers included — just the services you are missing.

Quick start

# Clone and configure
git clone https://github.com/lucamauri/wikibase-data-services
cp template.env .env  # then fill in your values

# Start the stack
docker compose up -d
docker compose ps  # all services should be healthy

Six containerised services

Each service handles one concern. Together they fill the gap between a bare LAMP Wikibase and a fully featured wiki platform.

WDQS — Blazegraph

wikibase/wdqs:2

SPARQL query engine over your Wikibase entity data. Stores RDF triples and answers graph queries in real time.

WDQS Updater

wikibase/wdqs:2

Polls the Wikibase API for recent changes and pushes them into Blazegraph. Polling interval is configurable via UPDATER_DELAY.

WDQS Frontend

wikibase/wdqs-frontend:2

Browser-based SPARQL query editor. Serves a clean /sparql endpoint URL. Fully brandable via environment variables.

Elasticsearch

wikibase/elasticsearch:1

Full-text search backend for the MediaWiki CirrusSearch extension. Exposed on 127.0.0.1:9200 — not publicly accessible.

QuickStatements

custom build

Batch editing tool for Wikibase, patched for self-hosted operation. Fixes missing mysqli, adds a cron batch runner, and injects OAuth credentials securely.

Traefik

traefik:3

Internal HTTP router. Routes traffic from your host reverse proxy to the correct container by Host header. No TLS — terminated by Apache.

Architecture overview

Designed for deployments where Apache already handles TLS. Traefik stays on loopback and never touches the public internet.

Internet
  │
  ▼
Apache :443  TLS termination · certbot · host-managed
  │
  ▼
Anubis :8923  bot filtering · rate limiting (optional)
  │
  ▼
Apache :8080  internal backend · loopback only
  │
  ▼
Traefik :8880  routes by Host header · 127.0.0.1 only
  │
  ├──► wdqs-frontend   query.your-wiki.org
  └──► quickstatements qs.your-wiki.org

What you need first

This stack assumes Wikibase is already running. It adds the services Wikibase doesn't include.

  • Docker 24.0 or later
  • Docker Compose V2 (docker compose)
  • Wikibase on a native LAMP stack
  • Apache, Nginx, or Caddy for TLS
  • ~3 GB available RAM for the full stack
  • A public hostname for SPARQL and QuickStatements

Guides and references

Step-by-step guides for every part of the setup, from data loading to OAuth registration.