Most video-call services are free because your meetings pay for them in data. Jitsi Meet is the open-source alternative you can run yourself: calls in the browser, no account needed for guests, and the server is yours. It installs from an apt repository in about fifteen minutes. The part to plan for is capacity.
How Jitsi uses the server
Jitsi uses a Selective Forwarding Unit: each participant sends their video once to the server, and the server forwards it to everyone else. No transcoding, so CPU stays moderate — but bandwidth grows with every person on the call. A participant typically sends 1–2 Mbit/s and receives several streams.
| Meeting size | Plan |
|---|---|
| 1:1 calls, up to ~5 people | Micro-IP — 1 vCPU, 2 GB, $10/mo |
| Team meetings, up to ~10–15 with video | Small-IP — 2 vCPU, 4 GB, $16/mo |
| Larger calls, several rooms at once | Medium-IP — 4 vCPU, 6 GB, $20/mo |
These are rough numbers. Screen sharing costs less than camera video; everyone at 720p costs more.
What you need
- A plan with its own IP. Media arrives on UDP port 10000, which NAT plans can't receive.
- A (sub)domain pointing at the server — see how to point a domain to your VPS.
- Ubuntu 22.04 or 24.04.
Install
Set the hostname to your meeting domain, add the Jitsi repository, and install:
hostnamectl set-hostname meet.example.com
curl -sL https://download.jitsi.org/jitsi-key.gpg.key \
| gpg --dearmor -o /usr/share/keyrings/jitsi-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/" \
> /etc/apt/sources.list.d/jitsi-stable.list
apt update && apt install -y jitsi-meet
The official quick-install guide also adds the Prosody repository — follow it for your Ubuntu version. The installer asks for the domain and offers a free Let's Encrypt certificate; take it.
Open the ports
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 10000/udp
ufw allow 22/tcp
If calls connect but show black video or drop after a few seconds, UDP 10000 is almost always the reason.
Lock it down
Out of the box, anyone who finds your URL can create meetings on your server. Turn on secure domain authentication: only accounts you create can start a room, while guests with the link can still join. The steps are in the Jitsi handbook under "Secure Domain setup" — it's a few lines in the Prosody and Jicofo configs, then:
prosodyctl register alice meet.example.com 'a-strong-password'
systemctl restart prosody jicofo jitsi-videobridge2
For sensitive calls, also set a room password and turn on the lobby from the meeting menu.
Honest limits
- Recording is heavy. Jibri runs a real Chrome plus ffmpeg for each recording. It needs its own bigger server; don't put it on a small plan.
- Bandwidth is the real ceiling. If call quality drops as more people join, it's bandwidth, not a bug.
- Mobile users need the app for the best experience; the mobile browser works but is more limited.
Self-hosted calls fit nicely with other private tools — a WireGuard or OpenVPN server, or your own Matrix chat. How IPv4 and IPv6 work on each plan is in the network docs.
Comments
No comments yet. Be the first.