TL;DR
For a personal / community Jitsi Meet server in 2026:
- Sizing: 4 vCPU / 8 GB RAM minimum for a 10-person call; 8 vCPU / 16 GB for 50+ people; bandwidth-bound at scale.
- Best providers: HostHatch (high bandwidth tiers), FlokiNET, AbeloHost (NL DC for low EU latency).
- Install: official Debian / Ubuntu packages or Docker. ~30 minutes setup.
- Federation: Jitsi doesn’t federate — your server is its own island.
Why self-host Jitsi
Jitsi is the leading open-source video conferencing platform. Self-hosting gives you:
- No external party in the call signal path — the meet.jit.si free server sees your traffic.
- Custom branding / configuration for your community.
- Privacy from US-based defaults — official Jitsi infrastructure is US-headquartered.
- No call-length limits or other Zoom / Teams pricing tier nonsense.
Sizing
Jitsi’s bandwidth and CPU requirements scale with call participants × video resolution. Approximate guidelines for the JVB (Jitsi Video Bridge) tier:
| Use case | Specs | Bandwidth (peak) |
|---|---|---|
| 1-on-1 calls (P2P) | 1 vCPU, 2 GB RAM | Negligible |
| Small meetings (3-8 people) | 2 vCPU, 4 GB RAM | 50-100 Mbps |
| Medium (10-25 people) | 4 vCPU, 8 GB RAM | 200-400 Mbps |
| Large (50+ people) | 8+ vCPU, 16+ GB RAM | 500+ Mbps |
Bandwidth is the binding constraint at scale. Pick a host with unmetered ports rather than metered transfer if you expect more than occasional use.
Step-by-step
1. Provision
Pick a host with high bandwidth allowance:
- HostHatch IS — 4-8 GB RAM tier, generous transfer.
- FlokiNET — explicit AUP, multi-juris failover.
- AbeloHost — NL datacenter for EU low-latency.
2. Install Jitsi (Debian / Ubuntu)
# Install dependencies
sudo apt install -y curl gnupg2 nginx-full
# Add Jitsi repository
curl https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
sudo apt update
# Install Jitsi Meet
sudo apt install -y jitsi-meet
The installer prompts for:
- Hostname (e.g.
meet.yourdomain.com). - SSL certificate option (Let’s Encrypt — recommended).
3. Lock down to authenticated users
By default, anyone who knows your domain can create and join rooms. To restrict:
# Configure Prosody for authenticated room creation
sudo nano /etc/prosody/conf.avail/meet.yourdomain.com.cfg.lua
Change authentication = "anonymous" to authentication = "internal_hashed", and add:
VirtualHost "guest.meet.yourdomain.com"
authentication = "anonymous"
c2s_require_encryption = false
Then in /etc/jitsi/meet/meet.yourdomain.com-config.js:
var config = {
// ...
hosts: {
domain: 'meet.yourdomain.com',
anonymousdomain: 'guest.meet.yourdomain.com',
// ...
},
// ...
};
Create users with sudo prosodyctl register USERNAME meet.yourdomain.com PASSWORD.
4. Restart services
sudo systemctl restart prosody jicofo jitsi-videobridge2
5. End-to-end encryption (optional)
Jitsi supports E2EE for calls of ≤20 participants. Enabled per-call via the UI; doesn’t require server config beyond the standard install.
Anonymity considerations
- Server logs: Jitsi logs are minimal but exist. The host can inspect them.
- Recording: avoid recording on the server; use client-side recording.
- Phone numbers: don’t enable the JIBRI dial-in feature unless you trust the upstream phone provider.
- Subdomain: use a privacy-protected gTLD domain registered through Njalla.
Cost
| Component | Approximate cost |
|---|---|
| HostHatch IS / FI 4 GB RAM | ~$8 / month |
| Domain (Njalla .com) | ~$1.25 / month |
| Total | ~$10 / month |
For comparison: Zoom Pro is $15/user/month; Google Meet is bundled with Workspace ($6+/user/month). A self-hosted Jitsi serves your entire team / family / community at flat cost.