I have recently installed Jitsi Meet for that purpose.
It is self-hosted, on a Debian server in my case. The installation really was as simple as a few steps:
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt-get -y update
sudo apt-get -y install jitsi-meet
I have only used it for 2 people + a third on audio, but I have a colleague who successfully hosted meetings for 10 participants. It is capable of sharing a screen, but you can't remote control it (so it's more like Discord and not like TeamViewer).
Key components seem to be
- Bandwidth: Compared to other systems, bandwidth seems to be an issue. You should calculate ~3 MBit/s per participant, while other systems only need 700 kBit/s.
- CPU: The base load in my case was 1.2 CPUs plus additional ~0.3 per user (that is 60% + 15% per user).
- domain name / subdomain: Using an IP address was not possible for me. In order to fix that, I had to completely uninstall and reinstall. You also don't want to use your "normal" domain, since it seems to handle all traffic for that domain. Thus you may need to wait 48 hours for DNS settings to propagate.
- HTTPS certificate: I have not set this up yet, but it seems to be crucial for the mobile app to work. I hope that Let's Encrypt certificates work
My setup was a virtual root server with 2 CPUs and 6 GB RAM and having three participants was already at a load of 1.8 (90% if you don't know how load works on Linux).
How satisfied am I? Well, it's ok for an open source product. If I had paid for it, I probably want my money back.
- Sometimes the video freezes and people have to reconnect to fix it.
- When playing Youtube videos (a built-in feature), nobody can talk.
- Quality settings seem to have no impact on video quality nor bandwidth.
- Sharing a screen disables the camera of the person sharing the screen.
- By default it's open for everyone who knows the domain name. I have not yet tried to secure it. It is possible to add a password for the channel you have opened.

If Jitsi is down, restarting helps
sudo /etc/init.d/jicofo restart
sudo /etc/init.d/jitsi-videobridge restart
sudo /etc/init.d/prosody restart