Manuelles Update von Discourse und Docker-Image auf die neueste Version

:bookmark: This guide provides step-by-step instructions for manually updating Discourse, the Docker container, and the Ubuntu operating system on a self-hosted setup.

:person_raising_hand: Required user level: System Administrator

:warning: SSH access to the server.

If you self-host Discourse, you occasionally need to run a manual update via the command line to get the latest security releases newest libraries.

These updates are not picked up in admin/update, which is why you’ll occasionally need to do these additional steps:

Updating Discourse

  1. Discourse itself should be updated about twice a month, by clicking the “Update to Latest Version” button in your admin dashboard (admin/update).

  2. Every two months we recommend SSH’ing into your web server (using putty or your favorite SSH client) and running the following commands, especially if the upgrade page doesn’t show up or you have any issues when trying to upgrade.

cd /var/discourse
./launcher rebuild app

Updating the Docker image and Ubuntu OS

For Ubuntu updates, make sure you have automatic security updates enabled for your Ubuntu! The command is:

dpkg-reconfigure -plow unattended-upgrades

However, that just covers critical security updates. Every so often you should get all the OS updates like so:

apt-get update
apt-get dist-upgrade

Due to the way docker packaging has changed you may also have to update your docker from lxc-docker or docker-engine packages. One way to do that is via the Docker script here (it will warn about an existing install but should upgrade ok):

wget -qO- https://get.docker.com/ | sh

This will now use the docker-ce main versions.

To summarize:

  • update Discourse twice a month via web updater
  • update the container every two months
  • update the OS every six months

You could double these numbers and still be fairly safe, e.g. update Discourse once a month, container every 4 months, OS once every 12 months, and so on.

But you really, really want automatic security updates enabled in Ubuntu, as listed above.

FAQ

What is the right time to update?

It just depends on the time you have available and how close to bleeding edge you want to be. If you have non-official plugins, it is highly advisable to utilize a test/staging site. If you do not have any non-official plugins, you can likely upgrade immediately, but even then, some plugins may break for a couple of days as the team fixes them (there are a lot of them).

What is common practice when updating with many plugins installed?

If you have a lot of plugins, testing locally or on a test server is highly advised. Especially if you have non-official plugins, as something could have broken. If you find something does break, then it is a matter of, do you have time to fix it? Does the original plugin author have time to fix it? Either of those could take weeks. So at least this way, you simply have a broken test site and not a broken production site.

I’m running low on disk space

If you are running low on disk space (check with df) try clearing up old images using:

./launcher cleanup
apt-get autoclean
apt-get autoremove

Does updating the actual server version of Ubuntu matter since Discourse always operates in Docker?

It matters a lot less. But you should be on at least a currently supported LTS release of Ubuntu server. A 64-bit Linux OS with a modern kernel version is required.

Last edited by @SaraDev 2024-11-21T21:25:01Z

Check documentPerform check on document:
177 „Gefällt mir“

Die Anleitungen werden ziemlich häufig überprüft und aktualisiert (diese hier scheint im Februar ein wenig angepasst worden zu sein). :+1:

Die einzige, mit der ich persönlich nicht vertraut bin, ist die Docker-Anleitung:

Aber ich kann für die Richtigkeit der übrigen bürgen. :slight_smile:

3 „Gefällt mir“

Ich habe gerade alle diese Befehle auf meiner Testseite ausgeführt, einschließlich des Docker-Updates, und sie funktionierten ohne Probleme.

5 „Gefällt mir“

Ich habe einen Bericht erhalten, dass dies bei der Ausführung ein Problem verursacht. Ich glaube nicht, dass ich es jemals selbst in den paar Jahren, in denen ich eine DO-Testseite hatte, benutzt habe.

Hat jemand aktuelle Erfahrungen damit, um sagen zu können, ob es sich immer noch um eine relevante Empfehlung handelt oder nicht?


Ich habe gerade die gelöschten Beiträge durchgesehen und ein paar gefunden, bei denen dieser Teil des Leitfadens zuvor angesprochen wurde [1] und es scheint, dass @MarkDoerr ihn ohne Probleme ausgeführt hat.

Ich bin mir jedoch immer noch nicht sicher, wann/unter welchen Umständen Sie ihn ausführen müssten? Habe ich zu viel Vertrauen in Docker Manager?


  1. Ich habe sie wiederhergestellt ↩︎

2 „Gefällt mir“

2 Beiträge wurden in ein neues Thema aufgeteilt: Wann soll der Datencontainer eines Zwei-Container-Setups aktualisiert werden?

Ein Beitrag wurde zu einem neuen Thema aufgeteilt: Upgrading v2.2.0.beta4 forum with unknown local changes

Habe versucht, diesen Befehl auszuführen (wget -qO- https://get.docker.com/ | sh) und er meldet:

Kann keine Verbindung zum Docker-Daemon unter unix:///var/run/docker.sock herstellen. Läuft der Docker-Daemon?

Es scheint, dass dies nicht funktioniert hat, um Docker zu aktualisieren.

Es scheint auch, dass dies dazu geführt hat, dass die gesamte Website abgestürzt ist, und die App kann nicht neu erstellt werden und meldet:

Kann keine Verbindung zum Docker-Daemon herstellen - überprüfen Sie, ob er läuft und Sie Zugriff haben

Nach dem Neustart des Servers ist die Website wieder online.

[Zitat=“Architekt, Beitrag:296, Thema:23325”]
Nach dem Neustart ist die Serverseite wieder online.
[/Zitat]

Vielleicht hat das Upgrade tatsächlich stattgefunden, aber es wurde kein Docker neu gestartet. Du kannst das überprüfen mit

docker --version

Es stellt sich heraus, dass mein Laptop eine alte Docker-Version hatte, und ich habe den empfohlenen Befehl ausgeführt, ohne dass ein Neustart notwendig war. Hier ist die Version, die ich bekomme:

$ docker --version
Docker-Version 26.1.4, Build 5650f9b
1 „Gefällt mir“

Habe die gleiche Docker-Version:

Docker version 26.1.4, build 5650f9b
1 „Gefällt mir“

Dann sind Sie auf dem neuesten Stand und alles ist in Ordnung!

3 „Gefällt mir“

Ich wusste, dass ich dieses Dokument über die Update-Kadenz von Discourse gesehen hatte, hatte aber Schwierigkeiten, es wiederzufinden, da es sich unter „Using Docker“ in Documentation befindet und „Manually update Docker“ heißt.

Da es Discourse- und Ubuntu-Updates abdeckt, könnte es auch an ein oder zwei anderen Stellen auf der Speisekarte stehen?

1 „Gefällt mir“

Wenn Discourse Sie auffordert, ein Bild zu aktualisieren (sodass ein Upgrade nicht über die Benutzeroberfläche möglich ist), wird Folgendes empfohlen:

    cd /var/discourse
    git pull
    ./launcher rebuild app

Wozu dient dieser zusätzliche git pull und warum empfehlen Sie ihn nicht im Handbuch?

3 „Gefällt mir“

Es ist ein altes Relikt und wird nicht mehr benötigt. Rebuild erledigt das.

2 „Gefällt mir“

Ich mache einen PR?

3 „Gefällt mir“
6 „Gefällt mir“

Zusammengeführt, danke @tvavrda!

6 „Gefällt mir“