Peertube plugin livechat: road to v6.0.0!

The first beta of the Peertube v6.0.0 chat plugin has been released! The v6.0.0-beta.2.

Acknowledgements

Let’s start with thanks:
Thank to Framasoft for funding THE big new feature of this release.
Thanks also to https://copiepublique.fr/ for its funding!

I will detail all this (and the rest) in a future communication.
I managed to find other funding that will allow me to work on the plugin in 2023, and to add many expected features. Especially on moderation, and viewers/streamers interactions.

v6.0.0 goals

This v6.0.0 is a first step before big news! (communication to come on that).

From the user point of view, there is not really any difference.
But under the hood, there are big changes.

The detail, in the changelog:

In summary:

The end of alternative modes

I removed the « alternative modes » which are there for historical reasons.
Indeed, it was possible to use the plugin with an external XMPP server, or with any external iframe.
These modes were there for historical reasons (I started with them, and kept them for backwards compatibility).

But they have become a hindrance for future evolutions.
While browsing the instances listed on instances.joinpeertube.org , I only found one that used one of these modes. And that’s because the plugin was installed there since the beginning, and the admins never paid attention to the new features.
Moreover, I announced this withdrawal of service since April or May 2022 (in the CHANGELOG, and with a warning message in the settings when using one of the old modes).

Now that I have removed this « technical debt », I will be much more comfortable with the evolutions.

Connection optimization

To improve the performance and scalability of the plugin, the plugin can now connect to the chat server via the Websocket protocol. The BOSH protocol remains available if the browser or user connection is not compatible.

Websocket vs. BOSH, it’s night and day. Expect big performance improvements, especially in crowded lives.

Warning: the use of Websocket by Peertube plugins is only possible from Peertube v5.0.0. If you are in a version lower than v5.0.0-RC1, the plugin will stay on the BOSH protocol. Everything will work as before, and you will automatically get Websocket when you upgrade your server.

100% automatic installation

The admins who have already used the plugin know it: until now you had to install manually the Prosody server on the machine.
This required root access to the machine, either to install the prosody package or to change the Docker image to an unofficial one that I provided.

This operation is now no more needed.
It took me several months to find an acceptable solution.

The v6.0.0 plugin will install itself fully automatically, from the Peertube web interface.
If you had installed Prosody manually by one of the old documented methods, you can uninstall it:

  • if you are under Docker, you will just have to go back to the official image
  • if not, if you don’t need prosody on the server: apt remove prosody

From a technical point of view, Prosody is still used. But I generate an « AppImage » file with the appimage-builder tool.
This image is based on the Debian repositories to generate an archive containing Prosody and its dependencies.

If this AppImage doesn’t work, it is possible to switch to the manually installed version of Prosody (see old install methods). The time to report the errors to me, and for me to find a fix.

It was a big job, but it’s a request that was often made to me. Many Peertube admins have given up using the plugin because of this. Besides, it poses compatibility problems on Yunohost, because this OS uses by default an XMPP server incompatible with Prosody (Metronome, which is a very old fork of Prosody).
This development should solve these problems.

Availability

I just published a beta version.
If there are admins who want to beta-test, I’m interested!

Warning, to be able to install a beta version of a plugin, you must have Peertube v5.0.0-RC1 minimum.
Then, you just have to use Peertube CLI :

  • install the cli
  • eventually add your login/password. Be careful, these will be stored in clear text in a file in your home. To avoid this, you can use the -U, --url and --password options on the following command (but this time it might be in your bash history)
  • install the plugin beta version: node ./dist/server/tools/peertube.js plugins install --npm-name peertube-plugin-livechat --plugin-version 6.0.0-beta.2 (to do in the CLI folder)

For the stable version, I hope to release it very soon.

Warning: ARM incompatibility

For the moment, I have a blocking problem. I can’t get it to work on ARM 64 architecture (for Raspbery Pie 4 for example).
I know that there are Peertube instances running on this kind of architecture. But it’s been 2 weeks that I’m struggling with this, and it seems that it is due to bugs on the appimage-builder side.
I put more info here.

If there is an expert who has a solution, just tell me!

Also note that for now, I only plan to deal with ARM64 (ie: aarch64).
For the other ARM variants, the tools don’t seem to be available. And it would be too much work for me.
However, if someone has a solution, I’m also interested :slight_smile:

Conclusion

I wait for your feedback :slight_smile:

4 « J'aime »

Thanks so much for your work on this, John! Can’t wait to see how it performs now!

1 « J'aime »

Please let me know if you installed the beta version, and if it works.

First of all thank you so much, John for all the work you have done. Waiting to see how it works!!

1 « J'aime »

v6.0.0 is released!

It will be available within a few hours, the time for your instance to index it.

Note: the version works automatically only for x86_64 CPU, for other architectures a workaround is documented.

For those who have installed the beta version, there is a bug in Peertube, preventing the plugin to update to its stable release: Unable to update a plugin in beta version to its stable release · Issue #5456 · Chocobozzz/PeerTube · GitHub

Two possible workaround:

  • use the CLI to install the stable version, as you did for the beta version
  • remove/re-install the plugin (your configuration won’t be lost, there is no risk doing that)

Some news about the plugin: Peertube chat plugin: 2023 will be full of new features! - John Livingston