cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

commit 03172d7084cae65903b12e1be0254ac1cebffbe5
parent 21b3aed27ac92d1f68f3ce5b1c1bdc356bef5a66
Author: MTRNord <MTRNord@users.noreply.github.com>
Date:   Sat, 18 Apr 2026 00:03:10 +0200

improvements and fixes for mediawiki

Signed-off-by: MTRNord <MTRNord@users.noreply.github.com>

Diffstat:
Mapps/talos_cluster/mediawiki/Dockerfile | 32+++++++++++++++++++++++++++++++-
Mapps/talos_cluster/mediawiki/configmap.yaml | 31+++++++++++++++++++++++++++++++
Mapps/talos_cluster/mediawiki/docker-entrypoint.sh | 3+++
3 files changed, 65 insertions(+), 1 deletion(-)

diff --git a/apps/talos_cluster/mediawiki/Dockerfile b/apps/talos_cluster/mediawiki/Dockerfile @@ -1,12 +1,38 @@ ARG MEDIAWIKI_VERSION=1.45.3 FROM mediawiki:${MEDIAWIKI_VERSION} AS mediawiki-src -# Add CodeMirror while git is available in the source image +# Clone extensions not shipped in the MW tarball RUN apt-get update && apt-get install -y --no-install-recommends git \ && git clone --depth 1 --branch REL1_45 \ https://github.com/wikimedia/mediawiki-extensions-CodeMirror.git \ /var/www/html/extensions/CodeMirror \ && rm -rf /var/www/html/extensions/CodeMirror/.git \ + && for EXT in \ + ArticleCreationWorkflow \ + Babel \ + BetaFeatures \ + ContactPage \ + CreditsSource \ + GuidedTour \ + LoginNotify \ + NearbyPages \ + RSS \ + ; do \ + git clone --depth 1 --branch REL1_45 \ + "https://gerrit.wikimedia.org/r/mediawiki/extensions/${EXT}" \ + "/var/www/html/extensions/${EXT}" \ + && rm -rf "/var/www/html/extensions/${EXT}/.git"; \ + done \ + && git clone --depth 1 --branch REL1_45 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/cldr \ + /var/www/html/extensions/CLDR \ + && rm -rf /var/www/html/extensions/CLDR/.git \ + && for EXT in EmailAuth GPGMail RealMe; do \ + git clone --depth 1 \ + "https://gerrit.wikimedia.org/r/mediawiki/extensions/${EXT}" \ + "/var/www/html/extensions/${EXT}" \ + && rm -rf "/var/www/html/extensions/${EXT}/.git"; \ + done \ && apt-get purge -y git && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* @@ -14,7 +40,11 @@ FROM php:8.3-fpm-bookworm RUN apt-get update && apt-get install -y --no-install-recommends \ apache2 \ + ghostscript \ + gnupg \ + imagemagick \ librsvg2-bin \ + poppler-utils \ python3-pygments \ libicu-dev \ libonig-dev \ diff --git a/apps/talos_cluster/mediawiki/configmap.yaml b/apps/talos_cluster/mediawiki/configmap.yaml @@ -123,9 +123,40 @@ data: wfLoadExtension('CodeMirror'); wfLoadExtension('ParserFunctions'); wfLoadExtension('Cite'); + wfLoadExtension('CiteThisPage'); wfLoadExtension('SyntaxHighlight_GeSHi'); wfLoadExtension('TemplateStyles'); + # === User / account extensions === + wfLoadExtension('Babel'); + wfLoadExtension('BetaFeatures'); + wfLoadExtension('EmailAuth'); + wfLoadExtension('GPGMail'); + wfLoadExtension('GuidedTour'); + wfLoadExtension('LoginNotify'); + wfLoadExtension('RealMe'); + + # === Content / navigation extensions === + wfLoadExtension('ArticleCreationWorkflow'); + wfLoadExtension('CLDR'); + wfLoadExtension('CreditsSource'); + wfLoadExtension('NearbyPages'); + wfLoadExtension('RSS'); + + # === ContactPage === + wfLoadExtension('ContactPage'); + $wgContactConfig['default'] = [ + 'RecipientUser' => 'MTRNord', + 'SenderName' => 'Wiki Contact Form', + 'SenderEmail' => 'support@midnightthoughts.space', + 'RequireDetails' => true, + 'IncludeIP' => false, + ]; + + # === PdfHandler === + wfLoadExtension('PdfHandler'); + $wgFileExtensions[] = 'pdf'; + # === Skin === wfLoadSkin('Vector'); $wgDefaultSkin = 'vector-2022'; diff --git a/apps/talos_cluster/mediawiki/docker-entrypoint.sh b/apps/talos_cluster/mediawiki/docker-entrypoint.sh @@ -1,6 +1,9 @@ #!/bin/bash set -e +# Apache needs these at runtime; create them in case the image layer didn't persist them +mkdir -p /var/run/apache2 /var/lock/apache2 + # Start PHP-FPM as a daemon /usr/local/sbin/php-fpm --daemonize