https://github.com/jitsi/docker-jitsi-meet
Put nginx in front of it with Let's Encrypt and it shouldn't take more than half an hour to set up. After that you basically get a clone of meet.jit.si.
I'm using it with the low level JS library in order to build a product that contains video chat. There was a bit more messing about for me, but only a bit.
Installation on Ubuntu is a breeze using an install script. It's important to complete the installation with some letsencrypt SSL certs and then you're good to go.
I created a subdomain (new A record pointing at ip address of my Jitsi server) on my business domain to make it easy for family members to go to the server themselves and create their own meeting rooms.
In addition, I wanted to expose jitsi to the internet but not allow random people to create or join rooms. I basically followed the first part of this[1], which sets up username/password pair that you're prompted for each time you create/join a room.
edit this file:
/etc/prosody/conf.avail/HOSTNAME.com.cfg.lua
Look for the first `authentication` line for HOSTNAME.com and change it to `internal_plain` authentication = "internal_plain"
Add a username/password prosodyctl register 'username' 'HOSTNAME.com' 'password'
then restart prosody (or just reboot)This is enough to make a password prompt pop up every time someone creates or joins a room, and it autofills nicely after you enter it the first time on firefox/chrome/android app. If you follow the rest of the guide you can set up a second domain people can use to join rooms without a password prompt.
This makes me feel a bit better about exposing this to the internet. Not sure if there's other havoc someone could cause though.
[0] thankfully I have fast internet with a public IP
Prosody is always running, whether or not you have it configured with a password. So I'd guess zero extra load.
Additionally, without a password your server is wide open, letting anyone start their own conference calls. I would guess that load could be significantly reduced by stopping unknown people from connecting.
(I still don't understand jitsi meet's architecture well though, so there could be ways around the password)