Mettre à jour manuellement Discourse et l'image Docker vers la dernière 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 « J'aime »

Les guides sont revus et mis à jour assez fréquemment (celui-ci semble avoir eu une petite retouche en février). :+1:

Le seul que je ne connais pas personnellement est celui de Docker :

Mais je peux garantir l’exactitude du reste. :slight_smile:

3 « J'aime »

J’ai exécuté l’intégralité de ces commandes sur mon site de test, y compris la mise à jour Docker, et elles ont fonctionné sans aucun problème.

5 « J'aime »

J’ai reçu un rapport indiquant que cela causait un problème lors de son exécution. Je ne pense pas l’avoir jamais utilisé moi-même au cours des deux années où j’ai eu un site de test DO.

Quelqu’un a-t-il une expérience récente pour dire si c’est toujours un conseil pertinent ou non ?


J’ai juste parcouru les messages supprimés et j’en ai trouvé quelques-uns où cette partie du guide avait été soulevée auparavant [1] et il semble que @MarkDoerr l’ait exécuté sans problème.

Cependant, je ne suis toujours pas sûr quand/dans quelles circonstances vous seriez obligé de l’exécuter ? Ai-je trop confiance en Docker Manager ?


  1. Je les ai restaurés ↩︎

2 « J'aime »

2 messages ont été déplacées vers un nouveau sujet : Quand mettre à jour le conteneur de données d’une configuration à deux conteneurs ?

Un message a été divisé en un nouveau sujet : Mise à niveau du forum v2.2.0.beta4 avec des modifications locales inconnues

J’ai essayé d’exécuter cette commande (wget -qO- https://get.docker.com/ | sh) maintenant et elle signale :

Impossible de se connecter au démon Docker sur unix:///var/run/docker.sock. Le démon Docker est-il en cours d'exécution ?

Il semble que cela n’ait pas fonctionné pour mettre à jour Docker.

Il semble également que cela ait provoqué le plantage complet du site, et que la reconstruction de l’application signale :

Impossible de se connecter au démon Docker - vérifiez qu'il est en cours d'exécution et que vous y avez accès

Après le redémarrage du serveur, le site est de retour en ligne.

Donc, peut-être qu’il a effectué la mise à niveau mais n’a pas réussi à redémarrer Docker. Vous pouvez vérifier avec

docker --version

Il s’avère que mon ordinateur portable avait une ancienne version de Docker et j’ai exécuté la commande recommandée et je n’ai pas eu besoin de redémarrer pour que cela fonctionne. Voici ce que j’obtiens pour la version :

$ docker --version
Docker version 26.1.4, build 5650f9b
1 « J'aime »

Avoir la même version de Docker :

Docker version 26.1.4, build 5650f9b
1 « J'aime »

Alors vous êtes à jour et tout va bien !

3 « J'aime »

J’ai eu beau chercher, je n’ai pas retrouvé ce document qui couvre la cadence des mises à jour de Discourse, car il se trouve dans Documentation sous « Utilisation de Docker » et est intitulé « Mise à jour manuelle de Docker ».

Puisqu’il couvre les mises à jour de Discourse et d’Ubuntu, pourrait-il figurer à un ou deux autres endroits dans le menu ?

1 « J'aime »

Lorsque Discourse vous conseille de mettre à jour une image (de sorte qu’il ne soit pas possible de mettre à niveau depuis l’interface utilisateur), il vous dit de faire ceci :

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

À quoi sert ce git pull supplémentaire et pourquoi ne le recommandez-vous pas dans le manuel ?

3 « J'aime »

C’est une vieille relique et elle n’est plus nécessaire. Reconstruire s’en charge.

2 « J'aime »

Je fais une PR ?

3 « J'aime »
6 « J'aime »

Fusionné, merci @tvavrda !

6 « J'aime »