So, I’ve been working with Jitsi for about 2 weeks and I’ve been trying to setup something robust and simple. But by design this seems quite a challenge.
Docker
The Docker solution works kinda great! However, the downside is that it’s Docker. Which has poor IPv6 support. And to customize configs I have to create a Docker overlay on top of the official images. That’s needed for e.g. theming. Most other things are setup through the .env and works great. But the downside for me is that I want to use a reverse proxy, which has drawbacks.
Package install
After installing the packages, it seems I have to change configs that are either managed or generated by these packages. That goes against usual Linux config management by packages. Usually there are configs that you shouldn’t touch, because they will be replaced by package updates. When custom changes are needed, then you can add configs with a suffix like e.g. .custom to override settings. Or use configs in /etc/default or /etc/sysconfig to set certain custom variables or switches.
But with Jitsi I get the impression that all custom settings may be gone after upgrading the packages. The config /etc/prosody/conf.avail/YOUR_FQDN.cfg.lua
is auto generated, and also contains TLS settings. Will those settings be overwritten at an update as well? I hope so, to keep in sync with the latest security requirements But at the same time, that config file needs to be customized for e.g. authentication, among other files.
Jibri is even “worse” (please don’t get me wrong, this is not a rant, I’m a huge fan of your work). It has a package, but it seems a lot of manual work is needed after that: Set Up Jibri for Jitsi Recording/Streaming – Nerd on the Street
Some of it needs to be manually updated as well (Chrome driver). Well, it looks easily automated in Ansible of course, so there are solutions, but it’s still kinda odd.
Is there any official documentation about theming and installing Jibri?
Conclusion
So in conclusion, it seems that the installation procedure for both Docker and deb packages have up and downsides. But they both share the downside that there is no separation between custom files (for e.g. themes) and custom configs.
Every update will probably overwrite everything. Ansible might help, but also to replaces lines it’s often needed to specify where the line is placed. For example with a regex and then define that it should be placed after that match. But if config files change with an update, then this may break too.
So to end with a question: Are there plans to enable more fine grained customization without touching package managed files? Or is my whole conclusion wrong here? That may also be the case of course