Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsiTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
You can run Jitsi Meet on a VPS you control by deploying either the official Docker Compose stack or the Debian/Ubuntu packages. The reliable path is: choose a public hostname such as meet.example.org, point DNS to the server, allow HTTPS and Jitsi’s media port through both firewall layers, complete the certificate setup, and test from two separate clients. For a basic installation, the critical network paths are 80/tcp, 443/tcp, and 10000/udp. Docker keeps Jitsi services isolated in containers; native packages integrate them with the operating system. Both routes use the same Jitsi architecture.
What you need before installing
Self-hosting Jitsi is a server, DNS, and network configuration project as much as it is a software installation. Prepare these items first:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- A Linux VPS or physical server with a public, reachable IP address and administrative access through
sudoor root. - A fully qualified domain name (FQDN), for example
meet.example.org. - Control of the DNS zone for that name.
- A VPS-provider security group and host firewall that you can edit.
- A current backup or snapshot before making major system changes.
The official package quick-start supports Debian 12 (Bookworm) or newer and Ubuntu 24.04 (Noble Numbat) or newer. It requires OpenJDK 17. The package route also uses tools such as gnupg2, nginx-full, sudo (when applicable), and curl or wget; Ubuntu installations need the universe repository enabled. Docker deployments should use the release archive and directory layout shipped with that release. The Docker documentation specifically warns that the layout described for stable-11146 and newer may not match older archives.
Choose Docker or native packages
| Consideration | Docker Compose | Debian/Ubuntu packages |
|---|---|---|
| Service layout | Web, Prosody, Jicofo, and Videobridge run in separate containers. | Services run directly on the host and are managed by the operating system. |
| Supported starting point | Use the latest Jitsi release archive and its included Compose files. | Debian 12+ or Ubuntu 24.04+ with OpenJDK 17. |
| Isolation and portability | Configuration and upgrades are easier to keep together; container networking adds another layer to inspect. | Fewer container layers, but package, Nginx, Java, and service dependencies live on the host. |
| Configuration persistence | Persistent configuration directories are mounted into the containers. | Configuration files are installed in the normal system locations. |
| Best fit | You already operate Docker Compose or want a self-contained stack. | You prefer native systemd services and standard Debian/Ubuntu administration. |
Do not mix the two methods on one hostname. Pick one deployment, finish it, and document its configuration before adding optional components.
#1 Best Overall
- Compatible with Nintendo Switch 2’s new GameChat mode
- Crisp HD 720p/30 fps video calls with diagonal 55° field of view and auto light correction. Compatible with popular platforms including Skype and Zoom.
- The built-in noise-reducing mic makes sure your voice comes across clearly up to 1.5 meters away, even if you’re in busy surroundings.
- C270’s RightLight 2 feature adjusts to lighting conditions, producing brighter, contrasted images to help you look good in all your conference calls.
- The adjustable universal clip lets you attach the camera securely to your screen or laptop, or fold the clip and set the webcam on a shelf. You’re always ready for your next video call.
Configure DNS, NAT, and firewalls
Create the public DNS record
- Choose the final hostname, such as
meet.example.org. - Create an A record for that hostname pointing to the server’s public IPv4 address.
- Wait for the record to resolve publicly before requesting a TLS certificate. Check from a network outside your VPS, not only from the server itself.
If the server is behind a home or office router, point the A record to the router’s public address and forward the required ports to the Jitsi host. A private address in DNS will make remote access and certificate validation fail.
Open the required ports
Allow these ports in both layers: the VPS provider’s security group or cloud firewall, and the operating system firewall. A rule in only one layer is not enough.
| Port | Protocol | Purpose | Required? |
|---|---|---|---|
22 (or your custom SSH port) |
TCP | Administration | Yes for remote administration; restrict it to trusted source addresses where possible. |
80 |
TCP | HTTP access, Let’s Encrypt validation, and optional redirect to HTTPS | Yes during certificate issuance and normally kept open for renewal. |
443 |
TCP | HTTPS web client and signaling access | Yes. |
10000 |
UDP | Jitsi Videobridge audio and video media | Yes for a basic deployment. |
3478 |
UDP | coturn/STUN/TURN when enabled | Optional. |
5349 |
TCP | TURN over TLS or TCP fallback when enabled | Optional. |
Keep Prosody’s XMPP ports, Jicofo interfaces, Videobridge administration interfaces, and other internal component ports private. They should be reachable by the Jitsi services, not exposed to the public Internet.
Install Jitsi with Docker Compose
1. Install Docker and obtain the release
Install a supported Docker Engine and Docker Compose implementation for your Linux distribution. Download the latest Jitsi release archive from the official Docker guide; do not clone the source repository when the guide asks for a release archive. Extract the archive and enter the extracted release directory:
tar xzf jitsi-meet-*.tar.gz
cd jitsi-meet-*
The wildcard is illustrative: use the actual filename you downloaded. Keep the release directory so that its Compose file, environment template, and helper scripts remain together.
2. Create the environment file and service passwords
cp env.example .env
./gen-passwords.sh
The password generator fills the environment file with separate credentials for the Jitsi services. Do not replace those values with one shared password, commit .env to a public repository, or paste it into an issue tracker.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →3. Create persistent configuration directories
From the release directory, create the directories expected by the current archive. The following layout is the one documented for stable-11146 and later; always compare it with the archive you actually downloaded:
Rank #2
- Compatible with Nintendo Switch 2’s new GameChat mode
- Auto-Light Balance: RightLight boosts brightness by up to 50%, reducing shadows so you look your best—compared to previous-generation Logitech webcams (1)
- Privacy with a Slide: The integrated webcam cover makes it easy to get total, reliable privacy when you're not on a video call
- Built-In Mic: The built-in microphone lets others hear you clearly during video calls
- Easy Plug-And-Play: The Brio 101 works with most video calling platforms, including Microsoft Teams, Zoom and Google Meet—no hassle; it just works
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,web/transcripts,prosody,jicofo,jvb}
These mounts keep certificates, Prosody data, Jicofo data, Videobridge settings, and web data outside disposable containers. Back up the resulting directory and your .env file.
4. Set the public URL and network values
Edit .env and set the public hostname and ports to match your DNS and firewall. Typical values for a direct public deployment are:
PUBLIC_URL=https://meet.example.org
HTTP_PORT=80
HTTPS_PORT=443
DOCKER_HOST_ADDRESS=203.0.113.10
Replace the example hostname and address with your own values. DOCKER_HOST_ADDRESS must represent the address participants can reach. If Docker is behind NAT, use the documented public-address/NAT settings for the release rather than advertising a private container address.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall5. Start the stack and watch its logs
docker compose up -d
docker compose ps
docker compose logs -f web prosody jicofo jvb
On older installations the command may be named docker-compose; use the Compose command provided by your Docker installation. Wait for the web service, Prosody, Jicofo, and Jitsi Videobridge to report healthy or running states before testing in a browser.
6. Complete certificate setup
Open the hostname over HTTP and HTTPS as directed by the current Docker guide. A public DNS record and inbound port 80 allow the deployment to obtain and renew a Let’s Encrypt certificate. If you use a reverse proxy or nonstandard external ports, ensure the certificate challenge still reaches the Jitsi web service. After HTTPS works, verify that HTTP redirects to HTTPS if that is your chosen policy.
Install Jitsi with Debian or Ubuntu packages
1. Prepare the operating system
sudo apt update
sudo apt full-upgrade
sudo apt install gnupg2 nginx-full sudo curl wget
On Ubuntu, enable the universe repository before installing dependencies. Set the machine’s hostname to the same FQDN you will use for Jitsi, and confirm that the name resolves correctly from outside the server.
2. Add the Jitsi repository
Use the signing-key command and repository entry shown in the current official Jitsi Meet quick-start for your distribution. Repository keys and paths can change, so copy those values exactly from that page rather than reusing an old blog post. Then refresh package indexes:
Rank #3
- 1080P Webcam with Cover for Video Calls - EMEET computer webcam provides design and Optimization for professional video streaming. Realistic 1920 x 1080p video, 5-layer anti-glare lens, providing smooth video. C960 computer camera delivers 1920x1080 video with fixed focus (11.8–118.1 inches), so as to provide a clearer image. C960 USB webcam has a cover and can be removed automatically to meet your needs for privacy. For optimal image performance, use the webcam in a well-lit environment.
- Built-in 2 Omnidirectional Mics - EMEET webcam with microphone for desktop features 2 built-in omnidirectional microphones, picking up your voice to create clear audio for communication. When installing the webcam, select EMEET C960 as the default microphone input device in your computer and video applications and select C960 as the default device in Zoom/Teams and ensure microphone permissions are enabled for proper use. Please note that C960 does not include built-in speakers.
- Automatic Light Adjustment - Automatic exposure adjustment is applied in EMEET HD webcam 1080p so that the streaming webcam can deliver stable image performance. EMEET C960 camera for computer also features color adjustment and exposure optimization to help you look your best. For optimal video quality, it is recommended to use the webcam in normal or well-lit environments and select suitable video settings in your application. Proper lighting helps achieve a clearer and more balanced image.
- Plug-and-Play & Upgraded USB Connectivity - New C960 webcam features both USB Type-A & A-to-C adapter connections for wider compatibility. For stable performance, connect the webcam directly to the computer's main USB port and ensure the device is recognized correctly. If a hub or docking station is used, please ensure it provides sufficient power and stable data transmission, as limited ports may affect performance. 90° wide-angle lens captures more participants without frequent adjustments.
- High Compatibility & Multi Application - C960 webcam for laptop is compatible with Windows 10/11, macOS 10.14+, and Android TV 7.0+. Not supported: Windows Hello, TVs, tablets, or game consoles. It works with Zoom, Teams, Facetime, Google Meet, YouTube and more. Please select C960 webcam as the default camera and microphone device in your application and ensure camera/microphone permissions are enabled, especially on macOS. (Tips: Incompatible with Windows Hello)
sudo apt update
Using the current keyring and a signed repository prevents an outdated or unauthenticated package source from being trusted by the host.
3. Install the package and answer the prompts
sudo apt install jitsi-meet
The installer asks for the hostname. Enter the public FQDN, not the server’s private address or an unqualified hostname. It then asks how to configure TLS. Select the Let’s Encrypt option when port 80 is reachable and DNS already points to the server; otherwise choose the temporary/self-signed option only as an interim step and replace it with a publicly trusted certificate before inviting users.
The package deployment installs and configures Nginx, Prosody, Jicofo, and Jitsi Videobridge as host services. OpenJDK 17 is a stated requirement for this route; do not substitute an unsupported Java version without checking the current compatibility guidance.
Free tools Windows power users keep installed
One-click scans. No signup required.
4. Verify the systemd services
sudo systemctl status nginx
sudo systemctl status prosody
sudo systemctl status jicofo
sudo systemctl status jitsi-videobridge2
If a service is not active, inspect its journal before restarting repeatedly:
sudo journalctl -u nginx -e
sudo journalctl -u prosody -e
sudo journalctl -u jicofo -e
sudo journalctl -u jitsi-videobridge2 -e
Fix hostname, certificate, password, or port errors shown in the logs, then restart only the affected service.
Understand the Jitsi components
| Component | Role | When you need it |
|---|---|---|
| Web/Nginx | Serves the browser client and terminates HTTPS. | Every deployment. |
| Prosody | Provides XMPP signaling and room coordination. | Every deployment. |
| Jicofo | Chooses a Videobridge and manages conference focus. | Every deployment. |
| Jitsi Videobridge (JVB) | Routes audio and video packets between participants. | Every deployment. |
| Jigasi | Acts as a SIP gateway for telephone audio. | Only when SIP telephony is required. |
| Jibri | Records conferences or sends live broadcasts. | Only for recording or streaming. |
Signaling can appear healthy while media is broken: the browser may create a room and show participants even when Videobridge UDP traffic cannot pass. Treat web/signaling and media as separate paths during diagnosis.
Secure rooms and the public endpoint
Decide whether anyone with a room link may create or join a conference. Open rooms are simple, but the link itself becomes the access control. For a controlled service, configure Prosody authentication and moderator controls according to the current Jitsi documentation. Test the behavior with a non-moderator account before publishing the hostname.
Rank #4
Do not expose internal XMPP or component ports to the Internet. Restrict SSH, keep the operating system and Jitsi release updated, protect the Docker .env file or native configuration files, and monitor disk usage if you enable recordings or transcripts.
Validate your first meeting
- From an external network, load
https://meet.example.organd confirm the certificate is valid. - Create a room with a name that is not easily guessable.
- Join from a second browser, device, or network. A private/incognito window is useful because it avoids reusing the first client’s permissions and session.
- Grant microphone and camera permission in both clients.
- Speak and move in front of the camera. Confirm two-way audio and video rather than only seeing the local preview.
- While testing, watch Docker Compose logs or the package-service journals for
web,prosody,jicofo, andjvb.
Test on the kinds of networks your users actually have, including a mobile connection or a restrictive corporate network. A test from two clients on the same LAN can hide an incorrect public bridge address or a blocked UDP port.
Troubleshoot common failures
| Symptom | Likely cause | Checks and correction |
|---|---|---|
| Certificate issuance fails | DNS points elsewhere, or port 80 is blocked. | Resolve the FQDN from an external network, confirm the public IP, and allow TCP 80 through the provider firewall, host firewall, and NAT router. |
| Blank page or redirect loop | Web container/Nginx is down, or external and internal ports do not match. | Check the web service status and logs, verify HTTP_PORT/HTTPS_PORT for Docker, and inspect the generated Nginx configuration for native installs. |
| Participants join but have no audio or video | Videobridge media traffic cannot reach 10000/udp, or the bridge advertises a private address. |
Open UDP 10000 at both firewall layers, verify NAT/public bridge-address settings, and review JVB logs. Configure the documented TURN path when direct UDP is blocked. |
| Rooms fail to start | Prosody or Jicofo is unhealthy, or generated service passwords do not match. | Inspect Prosody and Jicofo logs, confirm the hostname is identical in all configuration files, and regenerate or correct service credentials using the deployment’s documented method. |
| Works locally but not remotely | NAT, cloud security rules, or an incorrect public address. | Test from a different network, inspect the provider security group, confirm port forwarding, and ensure Videobridge advertises the public address rather than a private interface. |
When UDP is unavailable, coturn can provide STUN/TURN assistance and TCP fallback, but it is an additional service with its own configuration, certificates, and ports. It is not a substitute for correcting a mistakenly closed 10000/udp rule when direct media should work.
Plan for recording, telephony, and scale
Optional workers
Add Jibri only when you need conference recording or live broadcasting. Add Jigasi only when you need SIP telephone integration. Each introduces additional processes, credentials, storage, and monitoring; neither is required for browser-to-browser meetings.
Recommended Free Tools
Multiple Videobridges
A single Videobridge may be suitable for a small installation, but capacity depends on codecs, camera use, screen sharing, network quality, and meeting behavior. The official scalable deployment guidance treats additional bridges and region-aware routing as a separate design. Do not advertise a fixed participant limit based on a generic number: the official pages used for this guide publish no universal capacity, CPU, RAM, price, or performance figure. Size the VPS from your expected meeting pattern and validate it with representative load before relying on it for important events.
When to separate services
Keep the first deployment simple. Separate Videobridges or add regional bridges when monitoring shows a real resource or latency problem. Put recording workers on their own hosts when recordings compete with live media. Document firewall rules between components, preserve the public DNS and TLS design, and test failover before calling the system highly available.
Backups, updates, and operational checks
- Back up Docker’s persistent configuration directory and
.env, or the native Jitsi, Prosody, Jicofo, Videobridge, and Nginx configuration files. - Store certificate and authentication secrets securely; a configuration backup is sensitive data.
- Before upgrading, read the release notes and compare the new archive’s environment variables and directory layout with your current deployment.
- For Docker, pull the intended release images and recreate the stack during a maintenance window; retain the previous configuration until the new version passes the two-client test.
- For packages, update through the supported Debian/Ubuntu repository and check all four core services after the upgrade.
- Periodically verify DNS, certificate renewal, firewall rules, disk space, and remote audio/video—not only whether the landing page loads.
A practical go-live checklist
- The FQDN resolves to the correct public address.
- TCP 80 and 443 and UDP 10000 are open at the VPS security group and host firewall; NAT forwarding is correct when applicable.
- The certificate is publicly trusted and renews successfully.
- The deployment’s web, Prosody, Jicofo, and Videobridge services are running without recurring errors.
- Two clients on different networks can exchange audio, video, and screen sharing.
- Internal XMPP and administration ports are not publicly reachable.
- Room access policy, moderator controls, backups, update ownership, and log-retention rules are written down.
- Any TURN, Jibri, Jigasi, or additional Videobridge services have been tested separately from the basic meeting path.
Which deployment should you choose?
Choose Docker Compose when you are comfortable maintaining containers and want the web client, Prosody, Jicofo, and Videobridge packaged as a repeatable stack. Choose Debian/Ubuntu packages when you want systemd-managed services on a supported operating system and prefer native package administration. Whichever route you select, DNS, TLS, and UDP media reachability determine whether users experience a working meeting. Finish those network checks before tuning optional services or adding more bridges.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →

