New Customers: 50% OFF Your First Month on All VPS Servers & Web Hosting Plans!

Setting up a video conferencing facility with ubuntu 18 04 jitsi meet

Run a self-hosted video conferencing server using Jitsi Meet on a Hostworld VPS. This guide covers Ubuntu 24.04 native installation and AlmaLinux 9 Docker deployment, including DNS setup, firewall configuration, and repository preparation.

Rhys CallowayLinux VPS, servers, security and the command line 9 min read Updated 23 Sep 2026 AlmaLinux 9, Ubuntu 24.04

You can run a full Jitsi Meet video conferencing server on a Hostworld VPS. For a native install, use Ubuntu 24.04 which Jitsi supports out of the box. On AlmaLinux 9, use Jitsi’s official Docker deployment. Ubuntu 18.04 is no longer a supported target for new Jitsi installs, so plan to deploy on Ubuntu 24.04 instead.

Before you start

Read this section even if you have run Jitsi before. A few defaults have changed and older tutorials are out of date.

  • Ubuntu version: Jitsi’s quick install supports Ubuntu 22.04 or newer. Ubuntu 24.04 works out of the box. If you were aiming for Ubuntu 18.04, use 24.04 instead.
  • Your Hostworld VPS: Create or rebuild your VPS in our Virtualizor panel from the Hostworld client area. Pick Ubuntu 24.04 for a native install, or AlmaLinux 9 if you prefer the Docker route. Our VPS run in our Maidenhead, Berkshire data centre for UK, and New York for US.
  • Domain and DNS: Decide the hostname you will use, for example meet.yourdomain.com, and create an A record pointing to your VPS public IP before you run the installer. The installer configures web and certificates for that name. If you use Hostworld’s cPanel DNS, set your domain’s nameservers to ns1.serverworld.uk, ns2.serverworld.uk, ns3.serverworld.uk and ns4.serverworld.uk, then add the A record in cPanel.
  • TLS choice: Choose Let’s Encrypt during install. A self‑signed certificate will trigger browser warnings and the mobile apps will not connect.
  • Open ports: You need 80/TCP, 443/TCP, 10000/UDP. For best connectivity in restricted networks add 3478/UDP and 5349/TCP for STUN/TURN. Open these before testing meetings.
  • Ubuntu prerequisites: Enable the universe repository and make sure APT can use HTTPS. Add the Prosody upstream repository and key, then add the Jitsi stable repository and key in /usr/share/keyrings and create /etc/apt/sources.list.d/jitsi-stable.list. Update APT. Jitsi requires OpenJDK 17. Using another Java (for example OpenJDK 21) is not supported.
  • AlmaLinux 9 route: There are no official RPMs. Use the official Docker deployment. Red Hat does not ship Docker Engine; install it from Docker’s RHEL instructions or use Podman with the docker‑compat tools deliberately. Do not mix engines by accident.
  • NAT note: If your VPS is behind NAT, three‑way calls failing usually means the Jitsi Videobridge (JVB) needs the public IP mapped in /etc/jitsi/videobridge/jvb.conf. Plan to set ICE static mappings after install.
  • Firewall safety: On Ubuntu, allow SSH first, then the web and media ports, then enable UFW. Enabling a firewall before allowing SSH will lock you out.
  • Scale hints: For over 100 participants, raise systemd limits as Jitsi’s docs recommend. They provide the exact settings to increase NOFILE, NPROC and TasksMax, and commands to verify them.
  • Docker specifics: Use the latest release archive of docker‑jitsi‑meet, do not git clone. Run ./gen-passwords.sh to generate secrets. Recent releases run rootless and require writable storage/ and tmp/ directories in the CONFIG path with world‑writable permissions, or containers will not start. Be careful with Let’s Encrypt in Docker to avoid certificate rate limits when recreating configs.

Step 1: Choose your Hostworld VPS OS and plan the hostname

Decide the platform first. If you want the standard Jitsi quick install, use Ubuntu 24.04 on your Hostworld VPS. If you prefer containers or you are on AlmaLinux 9, plan for the Docker deployment. Pick a fully qualified domain name, for example meet.yourdomain.com. You will enter this exact name during install.

If your VPS is not on the OS you want, use Virtualizor in the Hostworld client area to rebuild it to Ubuntu 24.04 or AlmaLinux 9. If you need help with a rebuild, open a support ticket.

Step 2: Create or update DNS for your meeting domain

Set an A record for your chosen hostname to the VPS public IP. Do this before you install Jitsi so the Let’s Encrypt step can validate on port 80. If your domain’s DNS is hosted with Hostworld cPanel, ensure the nameservers are set to ns1.serverworld.uk, ns2.serverworld.uk, ns3.serverworld.uk and ns4.serverworld.uk, then add the A record in cPanel. If your DNS is elsewhere, create the A record at that provider.

Step 3: Open the firewall safely

Allow SSH first so you do not lock yourself out. Then allow web and media ports. Enable the firewall only after the allow rules are in place.

On Ubuntu 24.04 (UFW)

Allow SSH on port 22 so your session stays reachable.

sudo ufw allow 22/tcp

Allow HTTP and HTTPS so Let’s Encrypt and the site can respond.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Allow the media and real‑time helper ports used by Jitsi.

sudo ufw allow 10000/udp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp

Enable UFW now that the necessary ports are open.

sudo ufw enable

On AlmaLinux 9 (firewalld)

Open HTTP and HTTPS for the web interface and certificate validation.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Open the media ports required by Jitsi.

sudo firewall-cmd --permanent --add-port=10000/udp

If you plan to enable Jigasi (SIP dial‑in/out) later, open the recommended RTP port range now.

sudo firewall-cmd --permanent --add-port=20000-20050/udp

Reload firewalld to apply the changes.

sudo firewall-cmd --reload

Step 4: Prepare Ubuntu 24.04 for the Jitsi packages

On Ubuntu you will use Jitsi’s APT repository. The quick‑start asks you to enable the universe repository, ensure APT can fetch over HTTPS, add the Prosody upstream repository and key, and then add the Jitsi stable repository and key to /usr/share/keyrings before creating /etc/apt/sources.list.d/jitsi-stable.list. Update APT after adding the repositories. Jitsi requires OpenJDK 17. Avoid changing the Java version to an unsupported one.

Refresh the APT package index so the new repositories are visible when you add them.

sudo apt update

Follow the Jitsi quick‑start for the exact repository and key commands. They have changed in recent updates. Older posts that refer to legacy scripts are now out of date.

Step 5: Install Jitsi Meet

On Ubuntu 24.04 (native packages)

Install the metapackage which brings in all components. The installer will auto‑configure a web server and ask you for the hostname and certificate choice.

sudo apt install jitsi-meet
  • When asked for the hostname, enter the exact FQDN you created, for example meet.yourdomain.com.
  • When asked about certificates, pick Let’s Encrypt. Self‑signed certificates cause browser warnings and the mobile apps will not connect.
  • If Nginx is already bound to 443, the installer skips coturn. That means TURN is not configured yet. Plan to follow Jitsi’s TURN guidance to enable 5349/TCP so users on restricted networks can still join.

On AlmaLinux 9 (Docker deployment)

Install a container engine first. Docker Engine is not provided by Red Hat. Install it from Docker’s RHEL instructions or use Podman with docker‑compat deliberately. Do not mix the two approaches.

Then use Jitsi’s official docker‑jitsi‑meet release. The quick‑start stresses downloading the latest release archive, not using git clone.

  • Get the latest release archive from github.com/jitsi/docker-jitsi-meet and extract it on the server.
  • Copy the example environment file to .env so you can set configuration values.

Copy the example environment file so you can edit your instance settings.

cp env.example .env

Generate strong secrets for all the services. This is required before the stack will start.

./gen-passwords.sh

Create the writable config directories that the containers need. Recent releases require storage/ and tmp/ to exist and be writable or the containers will not start. The example below uses a config directory in your home folder. Adjust the path to match your .env CONFIG setting.

mkdir -p ~/jitsi-config/storage ~/jitsi-config/tmp
chmod 777 ~/jitsi-config/storage ~/jitsi-config/tmp

Bring the stack up in the background. This starts the web, Prosody, Jicofo and Videobridge containers.

docker compose up -d

If you later recreate the configuration and have Let’s Encrypt enabled in .env, be mindful of certificate rate limits. The Docker docs advise disabling the Let’s Encrypt variables when regenerating config to avoid hitting limits.

Step 6: Test a meeting

Browse to https://<your‑hostname>. Create a room and invite a second device to confirm audio and video. If you picked a self‑signed certificate, expect warnings in browsers and a failure in the mobile apps. Fix that by enabling Let’s Encrypt.

If media does not flow, check UDP 10000 is open and reachable. If two participants can see and hear one another but a third breaks the call, read the NAT section next.

Step 7: Fix NAT and restricted network issues

  • Behind NAT: The Jitsi quick‑start shows how to add ICE static mappings in /etc/jitsi/videobridge/jvb.conf so the JVB advertises the correct public address. This resolves the common three‑way call failure when the server is not directly on a public IP.
  • Enable TURN: TURN helps users behind strict firewalls. Jitsi’s TURN guide recommends using coturn on 5349/TCP for TLS, and optionally on 443/TCP. It includes a hook script (coturn-le-update.sh) to keep coturn’s certificate in sync with Let’s Encrypt renewals. If your web server already uses 443, focus on 5349/TCP.

Step 8: Add dial‑in or dial‑out audio (optional)

If you need telephone dial‑in or dial‑out, install Jigasi. On Debian/Ubuntu, installing Jigasi prompts for a SIP account. After setup you will see a telephone icon in the meeting UI. In Docker, Jigasi is available as an optional service in the compose files and requires the UDP 20000–20050 range to be open as shown earlier.

Step 9: Control who can create meetings

Jitsi’s older “Secure Domain” method for access control is now marked deprecated for new installs. Use JWT‑based authentication instead. See the Jitsi configuration docs for the current recommendation and examples.

Step 10: Plan for larger rooms

For rooms with more than about 100 participants, increase systemd limits as per the Jitsi quick‑start. They provide the exact values for NOFILE, NPROC and TasksMax, and the commands to confirm the new limits are in effect. Apply these changes before your first large event.

Step 11: Uninstall or rebuild with care

On Debian/Ubuntu, the quick‑start shows an uninstall line that purges Jitsi packages. Do not run that on a live system without backups. It can remove configuration. On Docker, keep your CONFIG directory backed up. Be careful when re‑initialising an environment with Let’s Encrypt enabled, because repeated renewals can hit rate limits and leave the site without a valid certificate.

What next

If you want the click‑by‑click with screenshots in Virtualizor and Ubuntu 24.04, we can help. If you hit a snag, please open a support ticket so we can look at your VPS and DNS with you.

  • Explore more of our VPS guides for networking, firewalls and system maintenance.
  • Need another server near your users in the UK. See our Linux VPS.

Common questions

Can I use Ubuntu 18.04 for Jitsi Meet?

No. The current quick install supports Ubuntu 22.04 or newer. Use Ubuntu 24.04 on your Hostworld VPS. Older tutorials that target 18.04 are out of date.

Do I need a domain name?

Yes. The installer expects a real hostname and Jitsi works best with a valid certificate. Use an A record pointing to your VPS IP and choose Let’s Encrypt during install. Self‑signed certificates show warnings and the mobile apps will not connect.

Which ports must be open?

At minimum: 80/TCP, 443/TCP and 10000/UDP. For better results in restricted networks add 3478/UDP and 5349/TCP for STUN/TURN. If you enable Jigasi, open 20000–20050/UDP as well. On Ubuntu the quick‑start shows these UFW rules and enables UFW only after allowing SSH.

Calls break when a third person joins. What is wrong?

This is the classic NAT symptom. Add the ICE static mappings in /etc/jitsi/videobridge/jvb.conf so the JVB advertises the server’s public IP, and make sure UDP 10000 is reachable from the Internet. The Jitsi quick‑start shows the exact configuration layout.

Can I install Jitsi Meet natively on AlmaLinux 9?

No official RPMs are provided. The supported method on RHEL‑like systems is the official Docker deployment. Follow Jitsi’s Docker guide, and on AlmaLinux install Docker Engine from Docker’s RHEL instructions or use Podman with docker‑compat intentionally.

If you would like us to check your setup or migrate you to Ubuntu 24.04 on a Hostworld VPS, please open a support ticket.