Jitsi Meet is an open-source video conferencing platform that you fully control. No accounts required for participants – just share a link and start talking. This server comes with Jitsi Meet fully installed and ready to use by IP address.
Your server’s IP address and root password are shown on the Server Details page in your client panel. Open https://your.server.ip in a browser. Your browser will show a security warning about the self-signed certificate – this is normal, proceed to the site.
On the Jitsi Meet welcome page:
Note: By default, anyone with the link can create and join meetings. No authentication is required. See the “Enabling Authentication” section below to restrict access.
If you placed the server behind a VyOS router on a private network, set up port forwarding for ports 22 (SSH), 80 (HTTP), 443 (HTTPS) and 10000/UDP (media). The UDP port is critical – without it, participants connect but have no audio or video.
Jitsi Meet works by IP address out of the box. To use a custom domain with a trusted SSL certificate, point your domain’s A record to your server IP, then connect via SSH and run:
ssh root@your.server.ip
/opt/setup/get-ssl.sh your-domain.com
The script will obtain a Let’s Encrypt certificate and reconfigure Jitsi Meet for the domain. After completion, access your instance at https://your-domain.com without any browser warnings. Automatic renewal is already configured.
By default, anyone can create meetings on your server. To require authentication for meeting creators while still allowing guests to join via link, edit the Prosody configuration:
# Edit Prosody config
nano /etc/prosody/conf.avail/your-domain.cfg.lua
# Change authentication from "jitsi-anonymous" to "internal_hashed":
# authentication = "internal_hashed"
# Add a guest VirtualHost at the end of the file:
# VirtualHost "guest.your-domain"
# authentication = "anonymous"
# modules_enabled = { "turncredentials"; }
# c2s_require_encryption = false
Update the Jitsi Meet config to enable the guest domain:
# Edit Jitsi Meet config
nano /etc/jitsi/meet/your-domain-config.js
# Uncomment or add the anonymousdomain line:
# anonymousdomain: 'guest.your-domain',
Configure Jicofo and create an authenticated user:
# Edit Jicofo config - add inside jicofo { authentication { section:
nano /etc/jitsi/jicofo/jicofo.conf
# enabled = true
# type = XMPP
# login-url = "your-domain"
# Create an authenticated user
prosodyctl register YOUR_USERNAME your-domain YOUR_PASSWORD
# Restart all services
systemctl restart prosody jicofo jitsi-videobridge2
Now only authenticated users can create meetings, while guests can still join via a shared link.
Common customizations in /etc/jitsi/meet/your-domain-config.js:
startWithVideoMuted: truestartWithAudioMuted: truedefaultLanguage: 'en'channelLastN: 20After changes, restart the services: systemctl restart prosody jicofo jitsi-videobridge2 nginx
| Port | Protocol | Purpose |
|---|---|---|
| 443 | TCP | HTTPS (web interface) |
| 80 | TCP | HTTP (redirect to HTTPS) |
| 10000 | UDP | Video/audio media (JVB) |
Important: UDP port 10000 must be open for video and audio to work. If participants can connect but have no audio/video, check that this port is not blocked.
Your server comes with Fail2Ban pre-configured to protect SSH from brute-force attacks.
| Rule | Max Attempts | Ban Duration |
|---|---|---|
| SSH | 5 failed logins | 10 minutes |
Useful commands:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
If you accidentally lock yourself out, connect via VNC console in your client panel and unban your IP.
# Check status of all Jitsi services
systemctl status prosody jicofo jitsi-videobridge2 nginx
# Restart all services
systemctl restart prosody jicofo jitsi-videobridge2 nginx
# View logs
journalctl -u jitsi-videobridge2 -f
journalctl -u jicofo -f
journalctl -u prosody -f
Jitsi Meet is installed from the official repository:
apt update && apt upgrade -y
It is recommended to take a snapshot before updating.
| Component | Details |
|---|---|
| Ubuntu | 24.04 LTS |
| Jitsi Meet | Latest (web frontend) |
| Jitsi Videobridge | Latest (media server) |
| Jicofo | Latest (conference focus) |
| Prosody | XMPP server |
| Nginx | Reverse proxy (HTTPS) |
| Fail2Ban | Brute-force protection |
| Problem | Solution |
|---|---|
| Browser shows SSL warning | This is expected with the default self-signed certificate. Set up a domain and run /opt/setup/get-ssl.sh your-domain.com for a trusted certificate |
| No audio or video in meetings | Ensure UDP port 10000 is open. Check JVB status: systemctl status jitsi-videobridge2 |
| Meeting page does not load | Check Nginx: systemctl status nginx. Check logs: journalctl -u nginx --no-pager -n 50 |
| Participants cannot connect | Verify all services are running: systemctl status prosody jicofo jitsi-videobridge2. Restart if needed |
| Poor video quality with many participants | Upgrade to 4+ vCPU and 4+ GB RAM. Set channelLastN in config.js to limit video streams |
| SSL certificate not renewing | Test renewal: certbot renew --dry-run. Check timer: systemctl status certbot.timer |
| Blocked by Fail2Ban | Use VNC console in your client panel to unban your IP |
| Forgot root password | Use VNC console in your client panel to reset it |