Jump to content

Documentation:Wiki Deployment

From jb-vpn.uk Wiki
Revision as of 14:04, 16 May 2026 by Josh (talk | contribs) (Uploaded documentation from markdown files)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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; group www-data must 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

Email

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).