Video coming soon…

🎥 Setup Jitsi Meet — Self-Hosted Video Conferencing

Deploy Jitsi Meet on Ubuntu with Docker — the open-source video conferencing platform that requires no account to join, with screen sharing, chat, polls, and unlimited participants on your own private infrastructure.

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install script — Jitsi Meet running in one command.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/communication/jitsi/jitsi-ubuntu.sh
chmod +x jitsi-ubuntu.sh
sudo bash jitsi-ubuntu.sh

Tutorial Steps

1 Download & Run the Script

The script installs Docker and starts all Jitsi Meet components: the web interface, Prosody XMPP server, Jicofo (conference focus), and JVB (Jitsi Videobridge for media relay). Jitsi will be available on port 8443 (HTTPS).

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/communication/jitsi/jitsi-ubuntu.sh
chmod +x jitsi-ubuntu.sh
sudo bash jitsi-ubuntu.sh

2 Access the Web UI & Start a Meeting

Open your browser and navigate to Jitsi. Accept the camera and microphone permissions when prompted. Type a room name in the "Start a new meeting" field and press Enter to create and join the room:

https://<your-server-ip>:8443
# Or via your domain if configured with a reverse proxy

3 Configure a Domain & HTTPS

For production use, configure a real domain name pointing to your server. Set up Caddy or Nginx as a reverse proxy to handle SSL termination and forward traffic to Jitsi's internal port. Update the PUBLIC_URL in the Jitsi .env file to match your domain. HTTPS is required for browsers to allow camera and microphone access.

4 Invite Participants & Use Features

Share the meeting room URL with participants — they can join directly in the browser without installing anything. Use the toolbar to share your screen, enable captions, start a poll, or use the whiteboard. Enable the waiting lobby from the security settings to control who enters the meeting.

Ports Used

PortPurpose
80HTTP (Let's Encrypt certificate challenge)
443 / 8443HTTPS — Jitsi Web UI
4443Jitsi Videobridge — TCP fallback
10000Jitsi Videobridge — UDP media (primary)

Overview

Jitsi Meet is a fully open-source, end-to-end encrypted video conferencing solution that you can self-host. Unlike Zoom or Google Meet, Jitsi stores no data on third-party servers — every call stays on your infrastructure. Jitsi is built on WebRTC and consists of several components: the web frontend (Jitsi Meet), a signaling server (Prosody + Jicofo), and a video bridge (JVB) that handles media routing. It supports HD video, screen sharing, text chat, hand raising, polls, whiteboard, and optional recording via Jibri. The guest experience requires no account or app — just a browser.

Why Use It

Jitsi eliminates dependency on third-party video platforms where your meeting data, recording, and participant information belong to Zoom or Google. Self-hosting is critical for organizations with data privacy requirements (healthcare, legal, government) or those operating in regions with restricted internet access. Jitsi is also completely free with no per-host or per-participant pricing — scale to as many meetings as your server can handle.

When You Need It

    Who Should Use It

      Real Use Cases

        Main Features

          How to Use After Installation

            Security Best Practices

              Ports and Firewall Notes

              Open ports 80 and 443 (TCP) for the web UI and HTTPS. Port 10000 (UDP) must be open for the JVB video bridge — this is the main media port that carries actual audio and video. Port 4443 (TCP) is used by JVB as a TCP fallback when UDP is blocked. Without port 10000 UDP open, video quality degrades to relay-only mode or calls fail to connect.

              Backup and Maintenance

                Common Mistakes

                  Troubleshooting

                    Alternatives

                    For commercial-grade self-hosted video, BigBlueButton focuses on education with virtual classrooms, polls, and breakout rooms. Whereby is a hosted service with a clean UI. Matrix/Element with Element Call provides decentralized video. Zoom, Google Meet, and Microsoft Teams are fully managed commercial alternatives. Jitsi is the best option for lightweight, no-account-required self-hosted video conferencing.

                    When Not to Use It

                    Avoid Jitsi for large-scale webinars (100+ participants) without dedicated hardware — the JVB video bridge is CPU-intensive and requires a powerful server for many simultaneous video streams. For recording every meeting automatically, Jibri adds significant complexity. Consider a managed Jitsi hosting service (8x8, Whereby) if you need reliability guarantees without operational overhead.

                    PrismaTechWork Professional Help

                    PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.

                      Contact Us

                      Frequently Asked Questions

                      Do participants need to create an account to join a Jitsi meeting?

                      No. By default, anyone with the room URL can join without creating an account or downloading an app. They just open the URL in any modern browser (Chrome, Firefox, Safari) and click Join. You can optionally enable authentication to require accounts for creating new rooms while still allowing guests to join existing rooms with a link.

                      How many participants can a Jitsi server handle?

                      A single JVB (video bridge) on a 4 vCPU / 8 GB RAM server typically handles 20-35 simultaneous video participants in a single room. For larger calls, you can deploy multiple JVBs and let Jicofo distribute load. Jitsi also supports 'last-n' mode where only the last N active speakers are shown in full video, reducing bandwidth and CPU requirements significantly.

                      Is Jitsi truly end-to-end encrypted?

                      Jitsi supports E2EE (end-to-end encryption) for peer-to-peer calls (2 participants). For calls with 3+ participants, video passes through the JVB server which decrypts and re-encrypts streams for mixing — this is transport encryption, not end-to-end. Jitsi is developing PERC (Privacy Enhanced RTP Conferencing) for true E2EE in group calls, but it has limitations with some features.

                      How do I enable meeting recording in Jitsi?

                      Recording requires Jibri (Jitsi Broadcasting Infrastructure), a separate component that headlessly joins a meeting room via a Chrome browser and records the screen. Jibri requires a dedicated Linux VM with a virtual display (Xvfb). Each Jibri instance can record one meeting at a time. Configure Jibri in the docker-compose.yml and set JIBRI_RECORDER_USER credentials in .env.

                      Can I embed Jitsi in my own web application?

                      Yes. Jitsi provides an IFrame API and a JavaScript SDK. Include the Jitsi Meet API script from your server and initialize a JitsiMeetExternalAPI object in your web page. You can control the meeting programmatically: mute participants, get participant lists, listen for events (user joined, left, etc.), and customize the UI by hiding specific toolbar buttons.

                      What is the JVB and why does UDP port 10000 matter?

                      The Jitsi Videobridge (JVB) is a Selective Forwarding Unit (SFU) — it receives video streams from each participant and selectively forwards them to other participants without transcoding, which is CPU-efficient. JVB uses UDP port 10000 for media transmission because UDP has lower latency than TCP for real-time video. If UDP is blocked by a firewall, JVB falls back to TCP on port 4443, which is slower.

                      How do I use Jitsi with a custom domain and HTTPS?

                      Set PUBLIC_URL=https://meet.yourdomain.com in the .env file. Point your domain's A record to your server IP. Set ENABLE_LETSENCRYPT=1 and LETSENCRYPT_EMAIL=you@example.com in .env. Restart the Jitsi Docker stack — it will automatically obtain and configure a Let's Encrypt certificate. Ensure ports 80 (for HTTP challenge) and 443 are open before running.

                      Can Jitsi integrate with Rocket.Chat or Mattermost?

                      Yes. Rocket.Chat has a built-in Jitsi integration — go to Administration → Video Conference → Jitsi and enter your Jitsi server URL. A video call button appears in every channel and DM. Mattermost supports Jitsi via the Jitsi plugin (marketplace). Users can start a video call with one click from within the chat interface, launching the Jitsi room in a new tab or embedded iframe.