Mastodon: Upgrades durchführen

Diesen Beitrag schrieb ich 1 Jahr und 3 Wochen zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute

In mehr oder minder regelmäßigen Abständen ist es nötig, der Instanz-Software ein Upgrade zu verpassen.

Pro-Tipp: Um die Veröffentlichung neuer Releases nicht zu verpassen, habe ich mir die GitHub-Announcements per Atom in meinen Feed-Reader geworfen. Antiquiert? Feeds werden meiner Meinung nach zu Unrecht verlacht! Ich arbeite nach wie vor total gerne damit, Feeds sind rock solid, wiegen nichts – und funktionieren halt einfach.

Ich spiele die Updates möglichst zeitnah ein. Es ist ein von außen erreichbarer Dienst, da ist es mir wichtig, auf Stand zu sein.

Ich skizziere also jetzt mal (wie im letzten Artikel versprochen) kurz, wie so ein Upgrade – für mich zumindest – funktioniert.

Ich arbeite bei solchen Dingen üblicherweise in einem screen.

screen -DRS mastodon_upgrade

Ins Mastodon Directory wechseln und alle Container stoppen – in meinem Setup liegen alle Files im $HOME des ausführenden Users.

cd $HOME/fediverse/mastodon
docker compose down

Zur Sicherheit ziehe ich mit eine Kopie der bisherigen funktionierenden Installation; den Cache lasse ich dabei außen vor.

sudo rsync -azvpP \
--progress $HOME/fediverse/mastodon $HOME/fediverse/mastodon-$( date +%Y%m%d ) \
--exclude $HOME/fediverse/mastodon/public/system/cache/

Dann bringe ich das Repository auf den neuesten Stand.

git fetch

In meinem Fall weicht die docker-compose.yml vom GitHub-Default ab, da ich sie an meine Gegebenheiten anpassen musste; über git status lässt sich das einsehen. Deshalb werfe ich die auf den Stapel nicht eingecheckter Änderungen.

git stash

Ich wusste dank des Feeds schon, dass beim heutigen Update die aktuelle Version die v4.1.1 sein würde – git fetch listet mir aber ebenfalls die jeweils neuen Tags.

## git checkout <version/tag>
git checkout v4.1.1

Jetzt muss ich meine vollgekritzelte docker-compose.yml wieder vom Stapel retten.

git stash pop

Anschließend gleiche ich sie mit der des aktuellen Checkouts ab und übernehme eventuelle Änderungen entsprechend. Und dann erstelle ich das Docker-Image und führe eventuell anstehende Migrationen durch.

docker compose build
docker compose run --rm web rails db:migrate
docker compose run --rm web rails assets:precompile

Zuguterletzt: ein force recreate aller Container!

docker compose up -d --force-recreate

Welcome back, konfigurationsmanufaktur.de!

Und das war’s dann auch schon 🙂

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Macintosh SE mit verzweifeltem Holzmann, 1500x 1000px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Du nutzt etwas ähnliches, aber besser, magst die von mir eingesetzte Software nicht, findest das alles gänzlich überflüssig und würdest es sowieso ganz anders machen? Das ist wunderbar – du solltest unbedingt einen eigenen Artikel in deinem Blog dazu schreiben!

Habe ich jedoch etwas missverständlich formuliert, gar ganz ausgelassen oder mich vertippt?
Artikel in diesem Bereich kannst du überarbeiten und ergänzen!
→ Hier geht es zum öffentlichen Repository... ←

Eure Gedanken zu „Mastodon: Upgrades durchführen“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.