About This Site: Difference between revisions
No edit summary |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
=== How Mediawiki? === | === How Mediawiki? === | ||
Built into a Docker container (with LocalSettings.php in it). | Built into a Docker container (with extensions and LocalSettings.php in it). Here's a snippet of what the Dockerfile looks like: | ||
<syntaxhighlight lang="dockerfile"> | |||
FROM mediawiki:1.42.4@sha256:1b1f10f32757ff07d3d2c8f1c001def2f01493fedf09606ac74656eeffdda867 | |||
RUN apt update && apt install -y git imagemagick | |||
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer | |||
RUN git clone -b REL1_42 --single-branch https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateStyles extensions/TemplateStyles | |||
RUN cd extensions/TemplateStyles && composer update --no-dev && cd ../.. | |||
RUN git clone -b REL1_42 --single-branch https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend extensions/MobileFrontend | |||
# ... | |||
COPY assets /var/www/html/resources/assets | |||
COPY LocalSettings.php /var/www/html/LocalSettings.php | |||
</syntaxhighlight> | |||
=== Why Kubernetes? === | === Why Kubernetes? === | ||
To learn it mainly. My day job is in DevOps where it's a | To learn it mainly. My day job is in DevOps where it's an important technology to know. Plus I've been personally interested in what you can do with it for a while, so this seemed a good place to start. | ||
=== Other Tech === | === Other Tech === | ||
Line 20: | Line 37: | ||
* GitHub Container Registry for hosting it | * GitHub Container Registry for hosting it | ||
* Renovate for keeping base images up to date | * Renovate for keeping base images up to date | ||
* FluxCD | * FluxCD for automatically deploying from GitHub | ||
* cert-manager for certificates | * cert-manager for certificates | ||
* Tailscale for remote access to the Kubernetes API | * Tailscale for remote access to the Kubernetes API | ||
* Oracle Cloud, for the free VM it's running on | * Oracle Cloud, for the free VM it's running on |
Latest revision as of 12:24, 31 December 2024
My personal website runs on a bit of an interesting tech stack: MediaWiki on k3s. This page aims to explain a bit about why.
Why MediaWiki?
In short, because I realised I was spending longer setting up my personal site's tech stack than producing content. So hopefully the "go to a page and click edit" experience will help.
Also because I have a fair bit of experience maintaining a MediaWiki site at YSTV (and even have a couple commits to the core).
Also inspired by a friend of mine using DokuWiki for hers.
How Mediawiki?
Built into a Docker container (with extensions and LocalSettings.php in it). Here's a snippet of what the Dockerfile looks like:
FROM mediawiki:1.42.4@sha256:1b1f10f32757ff07d3d2c8f1c001def2f01493fedf09606ac74656eeffdda867
RUN apt update && apt install -y git imagemagick
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
RUN git clone -b REL1_42 --single-branch https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateStyles extensions/TemplateStyles
RUN cd extensions/TemplateStyles && composer update --no-dev && cd ../..
RUN git clone -b REL1_42 --single-branch https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend extensions/MobileFrontend
# ...
COPY assets /var/www/html/resources/assets
COPY LocalSettings.php /var/www/html/LocalSettings.php
Why Kubernetes?
To learn it mainly. My day job is in DevOps where it's an important technology to know. Plus I've been personally interested in what you can do with it for a while, so this seemed a good place to start.
Other Tech
Here's various other assorted bits of tech that contribute to bringing you this site. Maybe I'll write up extended posts about them.
- GitHub Actions for building the container image
- GitHub Container Registry for hosting it
- Renovate for keeping base images up to date
- FluxCD for automatically deploying from GitHub
- cert-manager for certificates
- Tailscale for remote access to the Kubernetes API
- Oracle Cloud, for the free VM it's running on