This year allowed many people to work from home and because of that most of the communication had to be moved online. I always wanted to try to setup some easy to use video conferencing system, but my impression was that it’s really hard thing to do and to maintain. This year I finally discovered Jitsi (https://jitsi.org/) for myself. Looked nice and simple: just send an URL and open it in a web browser, that’s it! But… can I self host it? Well, yes! I’ve been using my self-hosted version of Jitsi to chat with friends and family for last 6 months, and it works really well. Especially audio, it’s so clear and feels like real (not sure if it’s just a feeling, or a latency is very minimal or something else). Video is OK, similar to other video chat apps. And they provide apps for Android and iOS as well.
How to use it
I think it’s the best to try Jitsi for real here: https://meet.jit.si/ They offer a lot for free, so you can try functionality without any hosting. Just go to a link, create a room and invite someone. You will have access to all features. If that is not enough, e.g. you want control over your communication channels, integrate with LDAP, etc. you can host it yourself. Read below.
How to set it up
There is documentation to set it up here: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart I used it to setup my own instance. It’s really straightforward if you have a machine that has its own public IP address and you don’t have anything else on the machine. And you only want single instance of it. I had some more work to do, because I use load balancer in my HomeLab, so I needed to follow behind NAT section. It’s also trivially simple to test the setup: just open 3 tabs in a web browser.
By default, it allows everyone to create and join a room. I think it’s important to set up some basic authorization, so not everyone can create rooms (but everyone can join, for example, without any account). Rooms can be also protected by temporary passwords (e.g. just for a meeting itself).
Seems like there is much more info here: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
What ‘Encrypted’ means?
There is work in progress for fully end-to-end encryption, but currently encryption means that your video/audio streams are encrypted from a client to the Jitsi server. As long as your server is secure, the whole end-2-end connection between users is secure. You can also use Jitsi behind VPN.