Plugin de tchat Peertube : en route vers la v6.0.0!

La première beta du plugin de tchat Peertube v6.0.0 vient d’être publiée ! La v6.0.0-beta.2.

Remerciements

On commence par les remerciements:
Merci Framasoft d’avoir financé LA grosse nouveauté de cette version.
Merci également à https://copiepublique.fr/ pour son financement !

Je détaillerais tout ça (et la suite) dans une communication à venir.
J’ai réussi à trouver d’autres financements qui vont me permettre de travailler sur le plugin en 2023, et d’y ajouter beaucoup de fonctionnalités attendues. Notamment sur la modération, et les interactions viewers/streamers.

Les objectifs de cette v6.0.0

Cette v6.0.0 est une première étape avant de grosses nouveautés ! (communication à venir là dessus).

Du point de vue utilisateur⋅rice, il n’y a pas vraiment de différence.
Mais sous le capot, il y a de gros changements.

Le détail, dans le changelog (en anglais):

En résumé :

La fin des modes d’utilisation alternatifs

Je retire les «modes alternatifs» qui sont là pour des raisons historiques.
En effet, il était possible d’utiliser le plugin avec un serveur XMPP externe, ou avec n’importe quelle iframe externe.
Ces modes étaient là pour des raisons historiques (j’avais commencé par eux, et je les ai gardé pour la rétro compatibilité).

Mais ce sont devenus des boulets qui me bloquent dans les évolutions à venir.
En parcourant les instances listées sur instances.joinpeertube.org , je n’en ai trouvé qu’une qui utilisait l’un de ces mode. Et c’est parce que le plugin y était installé depuis le début, et les admins n’ont jamais fait attention aux évolutions.
De plus, j’ai annoncé ce retrait de service depuis avril ou mai 2022 (dans le CHANGELOG, et avec un message d’avertissement dans les paramètres quand on utilise l’un des anciens modes).

Maintenant que j’ai retiré cette «dette technique», je vais être beaucoup plus à l’aise pour les évolutions.

Optimisation des connections

Pour améliorer les performances et la montée en charge du plugin, celui-ci est désormais capable de se connecter au serveur de tchat via le protocole Websocket. Le protocole BOSH reste disponible si le navigateur ou la connection utilisateur⋅rice n’est pas compatible.

Websocket vs BOSH, c’est le jour et la nuit. Il faut s’attendre à de grosses améliorations de performances, surtout dans les lives où il y a beaucoup de monde.

Attention: l’utilisation de Websocket par les plugins Peertube n’est possible qu’à partir de Peertube v5.0.0. Si vous êtes dans une version inférieure à la v5.0.0-RC1, le plugin restera sur le protocole BOSH. Tout fonctionnera comme avant, et vous bénéficierez automatiquement de Websocket quand vous mettrez votre serveur à jour.

L’installation 100% automatique.

Les admins qui ont déjà utilisé le plugin le savent: jusqu’à présent il fallait installer manuellement le serveur Prosody sur la machine.
Cela rendait nécessaire un accès root à la machine, pour soit installer le paquet prosody, soit changer l’image Docker pour une image non-officielle que je fournissais.

Cette opération est désormais superflus.
Il m’aura fallu plusieurs mois pour trouver une solution acceptable.

Le plugin v6.0.0 s’installera entièrement automatiquement, à partir de l’interface web de Peertube.
Si vous aviez installé Prosody manuellement par l’une des ancienne méthodes documentée, vous pourrez le désinstaller :

  • si vous êtes sous Docker, il vous suffira de revenir à l’image officielle
  • sinon, si prosody ne vous sert à rien d’autre sur le serveur: apt remove prosody

D’un point de vue technique, Prosody est toujours utilisé. Mais j’en génère un fichier «AppImage» grâce à l’outils appimage-builder.
Cette image se base sur les dépôts Debian pour générer une archive contenant Prosody et ses dépendances.

Si cet AppImage ne fonctionne pas, il est possible de basculer sur la version de Prosody installée manuellement (cf ancienne méthodes). Le temps de me remonter les erreurs, et que je trouve un correctif.

Ça a été un gros boulot, mais c’est une demande qui m’a été très souvent faite. Beaucoup d’admins Peertube ont renoncé à utiliser le plugin à cause de cela. Sans compter que ça pose des problèmes de compatibilité sur Yunohost, car cet OS utilise par défaut un serveur XMPP incompatible avec Prosody (Metronome, qui est un très ancien fork de Prosody).
Ce développement devrait résoudre ces problèmes.

Disponibilité

Je viens de publier une version beta.
S’il y a des admins qui veulent beta-tester, je suis preneur !

Attention, pour pouvoir installer une version beta d’un plugin, il faut avoir Peertube v5.0.0-RC1 minimum.
Ensuite, il suffit d’utiliser Peertube CLI :

  • l’installer
  • éventuellement ajouter vos identifiants. Attention, ceux-ci seront stockés en clair dans un fichier de votre home. Pour éviter cela, vous pouvez utiliser les options -U, --url et --password sur la commande suivante (mais ce coup ci ça risque d’être dans votre historique bash)
  • installer le plugin: node ./dist/server/tools/peertube.js plugins install --npm-name peertube-plugin-livechat --plugin-version 6.0.0-beta.2 (à faire depuis le dossier où vous avez votre Peertube CLI)

Pour la version finale, j’espère la sortir très prochainement.

Attention: incompatibilité ARM

Pour l’instant, j’ai un problème bloquant. Je n’arrive pas à faire marcher cela sur architecture ARM 64 (pour les Raspbery Pie 4 par exemple).
Je sais qu’il y a des instances Peertube qui tournent sur ce genre d’architecture. Mais ça fait 2 semaines que je me casse les dents là dessus, et il semble que ce soit des bugs coté appimage-builder.
J’ai mis plus d’infos ici.

S’il y a un⋅e expert⋅e qui a une solution, je suis preneur !

À noter aussi que pour le moment, je n’ai prévu de traiter que ARM64 (ie: aarch64).
Pour les autres variantes, les outils ne semblent pas disponibles. Et cela me demanderais trop de travail.
Toutefois, si quelqu’un a une solution, je suis également preneur :slight_smile:

Conclusion

J’attends vos retours :slight_smile:

3 « J'aime »

Si vous avez installé la version beta, et que ça fonctionne: faites le moi savoir :slight_smile:

Y’a au moins deux instances où ça fonctionne :slight_smile:

NB: pensez bien à suivre les indications de mise à jour de Peertube v5 le cas échéant. Notamment de mettre à jour la configuration Nginx.

Je viens de publier une 2e beta (j’ai mis à jours les instructions d’installation dans le message d’origine).
Cette 2e beta permet de désactiver Websocket en cas de problème de config sur le serveur Peertube.

La v6 vient d’être publiée. Elle sera disponible sur vos instances d’ici quelques heures, le temps qu’elle soit indexée.

Concernant la compatibilité ARM64, j’ai laissé tomber pour l’instant. Une solution de contournement est documentée.

Pour les personnes ayant installé la version beta, il y a un bug dans Peertube qui empêche la mise à jour du plugin sur la version stable: Unable to update a plugin in beta version to its stable release · Issue #5456 · Chocobozzz/PeerTube · GitHub

Pour contourner, 2 méthodes possibles :

  • utiliser le CLI pour installer la version stable, comme vous aviez fait pour la beta
  • supprimer/réinstaller le plugin depuis l’interface web (c’est sans risque, la conf n’est pas perdue)

J’ai publié un article pour parler un peu du futur du plugin de tchat: