Mettre à jour son serveur Synapse vers 0.34.1 et ultérieur

Ecrit le 27/01/2019

Après quelques échanges dans un des gros salons Matrix (le serveur a survécu, va savoir comment), j’ai décidé de mettre les mains dedans et de m’aventurer en eaux troubles. J’ai pensé que l’upgrade serait beaucoup plus compliquée qu’elle ne l’a été.

Un des apports de la version 0.34.1 est l’éclatement du paquet matrix-synapse en plusieurs dépendances optionnelles. Ce n’est pas plus mal pour éviter de charger inutilement le bateau, mais je ne savais pas comment partir avec une installation existante avec les données sur un serveur PostgreSQL.

Le backup complet

Avant de commencer à mettre à jour, j’ai stoppé le serveur Matrix puis fait une sauvegarde complète. Si quelque chose rate, j’aimerais retourner sur une base qui est connue fonctionnelle.

Mettre à jour

Avant de procéder

Avant de rédiger cet article, j’ai tenté de garder l’installation actuelle, sans succès. De plus, Python 2.7 sera en fin de vie le 1er janvier 2020 et pip ne supportera plus cette version. C’était donc une bonne occasion de remettre le serveur Matrix sur une version plus récente.

Au cas où les choses ne se passeraient pas comme prévues, je conseille de conserver l’ancien environnement virtuel en le renommant.

Pour rassurer certains, les fichiers de configuration ne seront pas affectées puisqu’ils sont dans un dossier séparé.

Comment faire ?

Il faut d’abord créer un environnement virtuel qui sera sous Python 3.7 pour ma part avec la commande qui suit: python3.7 -m virtualenv synapse. Après la création de l’environnement, il faut l’activer avec source synapse/bin/activate. Ensuite, installer le paquet qui fait tourner le serveur Synapse et les fonctions optionnelles que vous souhaitez. Pour ma part, j’ai pris le support des bases de données PostgreSQL et le support des aperçus des URLs: pip install matrix-synapse[postgres,url_preview]. Les valeurs que j’ai mises entre crochets vienent de la page de release de Synapse 0.34.1. Si ça vous chante, vous pouvez tout installer avec [all].

Après la mise à jour

Rien de plus compliqué. Changer de dossier dans le répertoire des configurations du serveur puis le démarrer avec synctl start pour voir si l’upgrade s’est bien passée. Si le serveur vit, alors vous pouvez le démarrer comme vous le feriez d’habiture. Personnellement, j’ai arrêté le serveur démarré manuellement et j’ai démarrer le service Systemd à la place.

Conclusion

Finalement, c’était effectivement beaucoup moins compliqué que je ne l’ai anticipé. C’est une réinstallation du serveur mais sur une autre version de Python.