---
# System prepended metadata

title: Jitsi Deployment

---


> Note: if file or directory path is not fully specified that mean the file inside this repo (`~/workspace/docker/jitsi`)

1. copy files from this repo to `~/workspace/docker/jitsi` directory inside WSL.
2. open WSL on the terminal
3. change the terminal working directory to `~/workspace/docker/jitsi`
4. run the following command to create directory to be mapped as docker volume for Jitsi containers `~/.jitsi-meet-cfg`

    ```shell
    mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    ```

5. copy the files from `prosody/prosody-plugins-custom` to `~/.jitsi-meet-cfg/prosody/prosody-plugins-custom`

    ```shell
    cp ~/workspace/docker/jitsi/prosody/prosody-plugins-custom/*.lua ~/.jitsi-meet-cfg/prosody/prosody-plugins-custom
    ```

6. Create a .env file by copying and adjusting env.example:

    ```shell
    cp env.example .env
    ```

7. update the following options on `.env` file
    - `HTTP_PORT`
    - `HTTPS_PORT`
    - `TZ`
    - `PUBLIC_URL`
    - `JVB_ADVERTISE_IPS` (not sure if we have to set value here)
    - `JWT_APP_ID`
    - `JWT_APP_SECRET`
8. update secrets
    - change the file mod to enable execution `gen-passwords.sh`
    - run the script `gen-passwords.sh`

    ```shell
    chmod 774 gen-passwords.sh
    ./gen-passwords.sh
    ```

9. add ssl certificate, key to config files `~/.jitsi-meet-cfg/web/keys`
    - `cert.crt` certificate with pem(base64) format
    - `cert.key` private key with pem(base64) format
10. run docker compose based on your current setup command could be `docker compose` or `docker-compose`

    ```shell
     docker compose -f docker-compose.yml -f jibri.yml up -d
    ```
