Mastodon: Upgrades durchführen
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
Der erste Schritt besteht darin, einen Dump der Datenbank zu erzeugen:
cd $HOME/mastodon
docker exec mastodon-db-1 \
pg_dump -Fc -U postgres postgres \
> postgres-$( date +%Y%m%d ).dump
Jetzt alle Container stoppen – in meinem Setup liegen alle Files im $HOME des ausführenden Users.
docker compose down
Zur Sicherheit ziehe ich mit eine Kopie der bisherigen funktionierenden Installation; den Cache lasse ich dabei jedoch außen vor.
cd ..
rsync -azvpP --progress \
--exclude mastodon/public/system/cache/ \
--exclude mastodon/.git \
mastodon mastodon-$( date +%Y%m%d )
Dann wechsle ich wieder in den Ordner und bringe das Repository auf den neuesten Stand.
cd mastodon
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. Letztere sind nicht immer nötig. Das Changelog des Projekts ist bei jedem Upgrade einen Blick wert!
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 🙂
Edit: Ich betreibe die Instanz nun seit fast zwei Jahren, und für mich funktioniert das so ganz gut. Den vorliegenden Artikel habe ich anhand der gerade veröffentlichten
v4.3.1überarbeitet. Allerdings achte ich inzwischen auch penibler darauf, alte Backups, alte Docker-Container und -Volumes regelmäßig zu trashen, denn das summiert sich schon alles ganz ordentlich… 😇
Habe ich etwas missverständlich formuliert, ganz ausgelassen oder mich vertippt?
Möchtest du hilfreiche Inhalte beisteuern?
Artikel in diesem Bereich kannst du überarbeiten und ergänzen!
→ Hier geht es zum öffentlichen Repository... ←
Ein Kommentar
Von: rainerrose
31. Oktober 2024
Mal wieder ein richtig guter Artikel. Eine Instanz betreue ich zwar nicht, aber ich konnte mal wieder Kleinigkeiten lernen.
Die Parameter -DR waren neu für mich und finde sie sehr praktisch. Erst letztens wieder angewendet.
Den RSS-Feed auf Github habe ich schon eeeeewig gesucht. Plump ein .atom an die URL von der Releases-Seite ranpinnen und schon hat man die RSS-Feed-URL. \o/ . Danke, danke, danke. Jetzt kann ich da meine FreshRSS-Instanz mit befüttern. Gerade eben noch festgestellt, dass das gleiche Prinzip für die RSS-Feeds auch bei Codeberg anwendbar ist.
Da kann ich hier echt ein paar lausige Scripte und Tools abreißen. Lesen via RSS entspricht so sehr viel mehr meinem Workflow; ich finde RSS nämlich auch noch immer toll.
Fazit: Es lohnt immer wieder die Artikel hier zu lesen. Egal ob on- oder offline. Irgendwas lerne ich meist immer. Und wenn's nur so scheinbare Kleinigkeiten wie der RSS-Feed sind, die mir persönlich aber ganz viel Lebensqualität zurück bringen.
Vielen lieben Dank.
Hinterlasse einen Kommentar
Ich freue mich über jeden Kommentar, es sei denn, er ist blöd.
Deshalb sind die Kommentare auf dieser Seite auch generell moderiert.