---
title: Deploying Jitsi Meet with Docker
description: Learn how to deploy a self-hosted Jitsi Meet video conferencing solution using Docker in a few simple steps.
products:
  - instances
tags: media Jitsi-Meet videoconferencing Docker deployment
dates:
  validation: 2025-08-05
  posted: 2020-03-24
  validation_frequency: 12
difficulty: beginner
usecase:
  - application-hosting
ecosystem:
  - third-party
---
import image from './assets/scaleway-jitsi_login.webp'
import image2 from './assets/scaleway-jitsi-meet-conf-call.webp'

import Requirements from '@macros/iam/requirements.mdx'


Jitsi Meet is a fully encrypted, open-source video conferencing tool. You do not need an account or subscription to use it. The solution can be installed natively on [Ubuntu Bionic Beaver (18.04 LTS)](/tutorials/jitsi-ubuntu-jammy-jellyfish/) and [Debian Buster](/tutorials/jitsi-debian/). You can also install it using a containerized application running on [Docker](https://www.docker.com/).

This tutorial explains how to install the Jitsi Meet solution on an Instance using the [Docker Image](https://github.com/jitsi/docker-jitsi-meet) provided by the Jitsi team, allowing you to deploy your personal Jitsi Meet video conferencing solution in a few easy steps. It is based on a Debian stable base installation and provides all additional modules available for Jitsi like [Etherpad](https://etherpad.org/) or [jigasi](https://github.com/jitsi/jigasi), a gateway allowing SIP connections to the Jitsi Meet Instance.

<Requirements />

- A Scaleway account logged into the [console](https://console.scaleway.com)
- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization
- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/)
- An [Instance](/instances/how-to/create-an-instance/) running on Ubuntu Bionic Beaver (or later) with **at least 4 GB of RAM**
- A [domain or subdomain](/domains-and-dns/quickstart/) pointed to your Instance

## Setting up Docker

1. [Connect to your Instance](/instances/how-to/connect-to-instance/) via SSH.
2. Update the package cache and upgrade the software already installed on the Instance using the `apt` package manager:
    ```bash
    apt update && apt upgrade -y
    ```
3. Add Docker's official GPG key to your system:
    ```bash
    apt-get update
    apt-get install ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    chmod a+r /etc/apt/keyrings/docker.asc
    ```
4. Add the Docker repository to your Apt sources:
    ```bash
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update
    ```
5. Install Docker using Apt:
    ```bash
    apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose unzip
    ```

## Installing Jitsi Meet

1. Download and extract the latest release of Jitsi Meet:
    ```bash
    wget $(curl -s https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep 'zip' | cut -d\" -f4)
    ```
2. Unzip the downloaded package:
    ```bash
    unzip <filename>
    ```
3. Enter the Jitsi Meet directory:
    ```bash
    cd jitsi-docker-jitsi-meet-*
    ```
4. Create a `.env` file by copying and adjusting `env.example`:
    ```bash
    cp env.example .env
    ```
5. Generate and configure strong passwords in the security section option of `.env` file by running the following bash script:
    ```bash
    ./gen-passwords.sh
    ```
6. Create the required configuration directories for Jitsi Meet:
    ```bash
    mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    ```
7. Run `docker compose up -d`, open a web browser and access the Jitsi Meet UI at `https://<YOUR_INSTANCE_IP>:8443`.

<Message type="note">
Jitsi Meet defaults to listening on port 8443 for HTTPS. While HTTP is an option on port 8000, it is typically used in [reverse proxy configurations](/tutorials/nginx-reverse-proxy/). Accessing Jitsi Meet directly via HTTP instead of HTTPS can result in WebRTC errors like `Failed to access your microphone/camera: Cannot use microphone/camera for an unknown reason`, or errors related to `getUserMedia` or `navigator.mediaDevices` being undefined.
</Message>

## Connecting to the Instance

1. Open a web browser on your local computer and access the web UI at `https://<public_instance_ip>:8443`. The Jitsi Meet login screen displays:
    <Lightbox image={image} alt="Jitsi Meet login screen" />

Enter a name for your conference and press `Go` to enter the conference room. It is now possible to share the conference link, set a password, configure the audio and video quality, and more.
    <Lightbox image={image2} alt="Jitsi Meet conference call screen" />

For more information concerning the Jitsi Meet Docker image, refer to the [official Jitsi documentation](https://github.com/jitsi/docker-jitsi-meet).

### Additional considerations

- **SSL certificate**: For production use, consider setting up a [reverse proxy with Nginx](/tutorials/nginx-reverse-proxy/) and obtaining an SSL certificate from Let's Encrypt for secure connections.
- **Scaling**: To handle more users, you might need to adjust the server resources or implement horizontal scaling by deploying multiple Jitsi Meet instances [behind a load balancer](/load-balancer/quickstart/).
- **Customization**: You can customize the Jitsi Meet interface and functionality by modifying the `.env` file and other configuration files in the setup directories.

By following these steps, you can deploy a secure, self-hosted Jitsi Meet video conferencing solution using Docker in a few steps.