Documentation:Wiki Deployment
Appearance
Production wikis run on this VPS under /var/www/wiki.jb/.
Stack
| Service | Container | Public URL | Upstream |
| Main wiki | wiki-mediawiki |
https://wiki.jb-vpn.uk | 127.0.0.1:8010
|
| Werbs wiki | wiki-werbs-mediawiki |
https://werbs-wiki.jb-vpn.uk | 127.0.0.1:8011
|
| Database | wiki-mariadb |
(internal) | 127.0.0.1:3307
|
- MediaWiki version: 1.44 (Docker image
mediawiki:1.44)
- Edge proxy: Caddy (
/etc/caddy/Caddyfile) terminates HTTPS and proxies to the containers
- Config on host:
wiki/LocalSettings.php,werbs-wiki/LocalSettings.php(mounted read-only; groupwww-datamust be able to read)
- Uploads:
wiki/images/,werbs-wiki/images/
Daily operations
cd /var/www/wiki.jb docker compose ps docker compose logs -f wiki docker compose restart wiki werbs-wiki
Upload documentation from the VPS:
python3 /root/wiki_manager.py --upload -y python3 /root/wiki_manager.py --update-main-page -y
Optional uploads without public HTTPS round-trip:
python3 /root/wiki_manager.py --upload -y --wiki-url http://127.0.0.1:8010
Outbound mail uses Fastmail SMTP (configured in each LocalSettings.php: $wgSMTP, $wgPasswordSender, $wgEmergencyContact). After editing settings on the host, ensure permissions remain 640 and group www-data.
Backups
cd /var/www/wiki.jb source .env mkdir -p backups docker compose exec -T mariadb mariadb-dump -uroot -p"$MARIADB_ROOT_PASSWORD" mediawiki \ > backups/mediawiki-$(date +%F).sql docker compose exec -T mariadb mariadb-dump -uroot -p"$MARIADB_ROOT_PASSWORD" mediawiki_werbs \ > backups/mediawiki_werbs-$(date +%F).sql tar -czf backups/wiki-images-$(date +%F).tar.gz wiki/images werbs-wiki/images
Maintenance
cd /var/www/wiki.jb source .env docker compose exec -T wiki php maintenance/run.php update --quick --conf /var/www/html/LocalSettings.php docker compose exec -T werbs-wiki php maintenance/run.php update --quick --conf /var/www/html/LocalSettings.php
Logos after image restores: bash scripts/fix-logos.sh
First-time install (empty databases)
Only needed on a fresh stack without imported content:
cd /var/www/wiki.jb cp .env.example .env # set passwords docker compose up -d bash scripts/init-db-users.sh bash scripts/install-wikis.sh
Admin credentials from .env: WIKI_ADMIN_USER / WIKI_ADMIN_PASSWORD (installer account; production wiki admin is the imported Josh sysop account).