Documentation:Wiki Deployment: Difference between revisions
Uploaded documentation from markdown files |
Updated documentation from markdown files |
||
| (One intermediate revision by the same user not shown) | |||
| Line 52: | Line 52: | ||
<pre class="lang-bash"> | <pre class="lang-bash"> | ||
cd /var/www/wiki.jb | cd /var/www/wiki.jb | ||
bash scripts/backup-wikis.sh | |||
</pre> | |||
Creates <code>backups/YYYY-MM-DD/</code> with <code>mediawiki.sql</code>, <code>mediawiki_werbs.sql</code>, and <code>wiki-images.tar.gz</code>. Deletes backup folders older than 30 days (<code>RETENTION_DAYS=0</code> to disable pruning). | |||
Weekly cron (root): | |||
<pre class="lang-cron"> | |||
0 3 '' '' 0 /var/www/wiki.jb/scripts/backup-wikis.sh >> /var/log/wiki-backup.log 2>&1 | |||
</pre> | </pre> | ||
| Line 71: | Line 73: | ||
Logos after image restores: <code>bash scripts/fix-logos.sh</code> | Logos after image restores: <code>bash scripts/fix-logos.sh</code> | ||
== Extensions == | |||
The VPS <code>LocalSettings.php</code> files use the '''default MediaWiki 1.44 extension set''' from the installer (skins only unless you add more). Content was imported from the NAS farm; per-wiki farm files (<code>LocalSettings_wiki.php</code>, <code>LocalSettings_werbs-wiki.php</code>) are not on this server. | |||
To restore NAS-only extensions: | |||
# Copy farm configs from the NAS backup (e.g. <code>/volume2/Backups/wiki-migration-*</code> or <code>/volume2/web_packages/mediawiki/</code>). | |||
# Merge any <code>wfLoadExtension(...)</code> lines into the matching VPS <code>LocalSettings.php</code>. | |||
# Run <code>maintenance/run.php update --quick</code> in the affected container. | |||
<code>$wgEnableUploads</code> is enabled so existing files under <code>wiki/images/</code> and <code>werbs-wiki/images/</code> remain usable. | |||
== Scripts (<code>/var/www/wiki.jb/scripts/</code>) == | |||
{| class="wikitable" | |||
|- | |||
| Script || Purpose | |||
|- | |||
| <code>backup-wikis.sh</code> || Dump both DBs and image trees to <code>backups/YYYY-MM-DD/</code> | |||
|- | |||
| <code>fix-logos.sh</code> || Set <code>$wgLogos</code> paths after image changes | |||
|- | |||
| <code>init-db-users.sh</code> || Create/grant <code>wikiuser</code> in MariaDB | |||
|- | |||
| <code>install-wikis.sh</code> || Fresh MediaWiki install (empty DB only) | |||
|} | |||
== First-time install (empty databases) == | == First-time install (empty databases) == | ||
Latest revision as of 14:45, 16 May 2026
Production wikis run on this VPS under /var/www/wiki.jb/.
Stack
[edit]| 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
[edit]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
[edit]cd /var/www/wiki.jb bash scripts/backup-wikis.sh
Creates backups/YYYY-MM-DD/ with mediawiki.sql, mediawiki_werbs.sql, and wiki-images.tar.gz. Deletes backup folders older than 30 days (RETENTION_DAYS=0 to disable pruning).
Weekly cron (root):
0 3 '' '' 0 /var/www/wiki.jb/scripts/backup-wikis.sh >> /var/log/wiki-backup.log 2>&1
Maintenance
[edit]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
Extensions
[edit]The VPS LocalSettings.php files use the default MediaWiki 1.44 extension set from the installer (skins only unless you add more). Content was imported from the NAS farm; per-wiki farm files (LocalSettings_wiki.php, LocalSettings_werbs-wiki.php) are not on this server.
To restore NAS-only extensions:
- Copy farm configs from the NAS backup (e.g.
/volume2/Backups/wiki-migration-*or/volume2/web_packages/mediawiki/). - Merge any
wfLoadExtension(...)lines into the matching VPSLocalSettings.php. - Run
maintenance/run.php update --quickin the affected container.
$wgEnableUploads is enabled so existing files under wiki/images/ and werbs-wiki/images/ remain usable.
Scripts (/var/www/wiki.jb/scripts/)
[edit]| Script | Purpose |
backup-wikis.sh |
Dump both DBs and image trees to backups/YYYY-MM-DD/
|
fix-logos.sh |
Set $wgLogos paths after image changes
|
init-db-users.sh |
Create/grant wikiuser in MariaDB
|
install-wikis.sh |
Fresh MediaWiki install (empty DB only) |
First-time install (empty databases)
[edit]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).