VIDEO GUIDE ** How to Setup Jitsi in Docker with a Reverse Proxy **


Recommended Posts

Hello,

 

Im currently on the latest docker-compose and Jitsi docker image stack , if anyone trying to get Jitsi back up or up-to-date.

 

docker_compose.png.00ea4a44e6efad43b3c10deb57a5cd56.png

jitsi_stack.png.b88bd77b33bfbf4ae32ed6cace213cdf.png

 

-I removed the previous installed Jitsi docker images and removed the old appdata folder.

-For me that was:

rm -r /mnt/user/appdata/jitsi

 

-Once you have removed the previous Jitsi images/appdata folder.

-I perform the following and got the latest Jitsi docker image stack installed and running.

 

### First Install  docker compose (latest https://github.com/docker/compose/releases/

curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

### make file executable with command beneath

sudo chmod +x /usr/local/bin/docker-compose

 

### check version

docker-compose --version

 

docker_compose.png.00ea4a44e6efad43b3c10deb57a5cd56.png

 

### Install portainer as in the video using community applications

### Make directories in the appdata shares. Open terminal window on Unraid and paste below.

 

mkdir -p /mnt/user/appdata/jitsi/jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb,jigasi,jibri}
mkdir -p /mnt/user/appdata/jitsi/github && cd /mnt/user/appdata/jitsi/github

 

### Pull down what's needed from github Download and extract the latest release. DO NOT clone the git repository.

sudo wget https://github.com/jitsi/docker-jitsi-meet/archive/refs/tags/stable-8252.tar.gz && tar -zxvf stable-8252.tar.gz && cd docker-jitsi-meet-stable-8252

 

### Edit the env.example file

nano env.example

 

### leave the passwords blank 
-location of config.     CONFIG=/mnt/user/appdata/jitsi/jitsi-meet-cfg/
-follow video for the rest.

 

### Copy env.example to working .env file

cp env.example .env

 

### Generate passwords (you don't need to know these as you don't use them yourself) 

./gen-passwords.sh

 

### Install containers with docker compose up      

docker-compose up -d

 

### Login into portainer (see video)

 

### Change network to proxynet (delete other network)
-same as video move/leave networks respectfully.

 

### Name the containers - see video
docker-jitsi-meet-stable-8252-jicofo-1         TO   focus.meet.jitsi
docker-jitsi-meet-stable-8252-jvb-1             TO   video.meet.jitsi
docker-jitsi-meet-stable-8252-web-1           TO   meet.jitsi
docker-jitsi-meet-stable-8252-prosody-1     TO   xmpp.meet.jitsi 

 

### download the proxy config (edit if necessary) 
-copy to the correct location - see video
-restart letsencrypt proxy
-Test by going to your domain. ie https://meet.yourdomain.com

 

### Secure the server

### Open a console window into the container xmpp.meet.jitsi

 

### Create auth user (see video)

prosodyctl --config /config/prosody.cfg.lua register username meet.jitsi password

 

### Restart xmpp.meet.jitsi container

### Your good to go !!


-Remember if you make changes to it make sure to stop the 'stack'.
-You can check out some of the new/extra features on that 'nano env.example' file.
-Ctrl + O and Ctrl + X to save and exit.
-And 'cp env.example .env' to transfer those changes. 

 

-Hope this helps someone.
 

Edited by Tolete
updated, pull to current file ver.
Link to comment
1 hour ago, JonathanM said:

Which portions are needed to update a running install?

 

Or are you saying we need to blow away what is there already and start fresh?

 

-The docker-compose and the jitsi docker image stack needed updating.

-Also noticed the official Jitsi self host guide points out NOT to clone github instead to download from stable release.

 

dont_clone.png.b325af73413d5b702956dff992203687.png

 

-So i just blew it away. I recommend doing the same.

Edited by Tolete
spell-check
Link to comment
  • 2 months later...
On 5/23/2022 at 12:20 PM, JonathanM said:

Which portions are needed to update a running install?

 

Or are you saying we need to blow away what is there already and start fresh?

Seriously?  We have to do a fresh install every time this updates?  There has to be a better option, no?  We can't use recreate in portainer or just docker compose over the old installation?

Link to comment

What do you mean?

If it's "run a reverse proxy that can direct to either jitsi or other things" it's the standard way to do it.

If it's "use the nginx instance that serves the Jitsi web frontent to serve something else" it's likely going to be a major pain, and the whole point of Docker is to avoid having to go through this by having multiple independent instances.

Link to comment
  • 3 weeks later...

Hi Everyone, I had a Jitsi server running for almost a year and suddenly this error happened. I've tried nuking the container and rebuild, but didn't work. I can get to Jitsi via <unraid local ip>:8000 but my duckdns.org just puts me back to this error. I don't think it's a reverse proxy issue as the web page header is correct, and that particular screen is unfamiliar compared to the nginx errors I've seen with other reverse proxy failures. Did a Jitsi update push some other sort of new authentication parameters? Does the reverse proxy conf file need new info that wasn't in the old one? I'm at a total loss.

 

Also, I understand that the docker isn't "controlled" by Unraid, but should i expect the proxynet ip address to be visible here? This could be a docker-network dns issue if the IPs are supposed to be posted here...?

jitsi failure.PNG

jitsi ports.PNG

unraid dockers.PNG

Link to comment

So, I figured it out: Corporate IT was blocking my "DynamicDNS host" as suspicious. No more problems.

 

BUT, I learned a lot about docker-compose and thought I would add to a previous post as a more up-to-date guide to rjlan's guide to updating jitsi, plus a guide this simplified is something I sorely needed starting out:

 

I: Every time unraid reboots, you will need to re-install docker-compose, here's how to do the latest rev:

     Find latest build at github: https://github.com/docker/compose/releases/

  1. scroll to your relevant hardware (for me it's linux x86_64)
  2. right click > copy link for "linux x86_64"
  3. open unraid terminal window
  4. modify the following code to have your copied link, usually easiest to make changes in a separate text editor then copy/paste into command line:
curl -L “PasteYourLinkHere" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

   

II: Back-up previous env.example and docker-compose.yml. this is just in case things go sideways and you need to refer back to something.

     In the unraid terminal:

cd /mnt/user/appdata/jitsi/github/
cp ./docker-jitsi-meet-stable-7648/env.example ./env.example.bkup
cp ./docker-jitsi-meet-stable-7648/docker-compose.yml ./docker-compose.yml.bkup

(note, your "docker-jitsi-meet-XXXX" will likely be different, tab is your friend in the command line)

 

IIa: remove old docker

sudo docker stop video.meet.jitsi focus.meet.jitsi xmpp.meet.jitsi meet.jitsi
sudo docker rm video.meet.jitsi focus.meet.jitsi xmpp.meet.jitsi meet.jitsi
sudo rm -r /mnt/user/appdata/jitsi/jitsi-meet-cfg/
mkdir -p /mnt/user/appdata/jitsi/jitsi-meet-cfg/{web,web/crontabs,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

 

III: Now we get the jitsi docker:

  1. Similar to docker compose, we need to find the latest build from github. Under the "Assets" section, right click and copy link for the "Source Code (tar.gz)"
  2. Modify the following command to paste in your link from above:
    sudo wget https://github.com/jitsi/docker-jitsi-meet/archive/refs/tags/stable-7287.tar.gz && tar -zxvf stable-7287.tar.gz && cd docker-jitsi-meet-stable-7287

    Please note the context here. There are 3 functions happening in one command: we are "getting" the source code at the link address && we are decompressing the tar.gz file && changing directory to the freshly decompressed directory. All 3 of these functions need to be updated to the appropriate version number or syntax to match the github link.

 

IV: Modification of Files - Simplify this deployment and don't fuss in portainer!

  1. Since the video was released, the env.example file has been simplified, so follow the video, but understand that some options are moved elsewhere. Don't worry about it.
    nano ./env.example
    1. update CONFIG= directory (note, leave off trailing "/", it becomes redundant with this version of the .yml file)
    2. Timezone
    3. Public URL
    4. Docker_Host_address
    5. Enable auth=1      (recommended)
    6. Enable_guest=1     (recommended)
    7. Auth_type=internal       (recommended)
    8. ctl+x to exit, "y" to save
    9. copy env.example to .env
      cp env.example .env

       

  2. Modify the docker-compose.yml to tidy things up and make life much easier
    nano ./docker-compose.yml
    1. Under each section add line at top: container_name: (web=meet.jitsi prosody=xmpp.meet.jitsi  jicofo=focus.meet.jitsi, jvb=video.meet.jitsi) See attached photo below #11519726542_StepIV-2-1.PNG.c0cad721429bc66c478eda1f3d320e0f.PNG

    2. Under "network" at bottom, add: name: external: See attached photo below #2

    3. 1949385062_Jitsinetwork.PNG.e5593888894e88acf79953e5e825b8ba.PNG

  3. Create passwords:

    gen-passwords.sh
    1.  
  4. DEPLOY!

    docker-compose pull
    docker-compose up -d --remove-orphans
    docker image prune
  5. Set up Authentication again (stored in xmpp.meet.jitsi somewhere, so it gets overwritten)

    1.  Open a terminal to the xmpp.meet.jitsi container:

      prosodyctl --config /config/prosody.cfg.lua register username meet.jitsi password

      overwrite "username" and "password" with relevant information

 

Unfortunately unraid will still show an update available, as the docker isn't "controlled" by unraid's Community Applications.

Step IV-2-2.PNG

Edited by capnJiP
backup file command started in wrong directory, corrected.
Link to comment

Is there a reason why we cannot modify the steps to install jitsi using the ones from A75G's Repository?  If it can work, the benefit is that they can be updated through unraid's built-in docker like all other containers.

 

I've tried to merge the instructions from this tutorial, but I doubt that is the correct approach.  If anyone can share insight or has been able to set up jitsi that can be updated that way, I'd love to know.

 

TIA!

Link to comment
  • 2 months later...
On 8/19/2022 at 4:05 AM, avinyc said:

Is there a reason why we cannot modify the steps to install jitsi using the ones from A75G's Repository?  If it can work, the benefit is that they can be updated through unraid's built-in docker like all other containers.

 

I've tried to merge the instructions from this tutorial, but I doubt that is the correct approach.  If anyone can share insight or has been able to set up jitsi that can be updated that way, I'd love to know.

 

TIA!

 

 I tried switching to using Jitsi meet on the unraid docker templates instead of docker compose.  I used all 4 containers and got it mostly setup, but alas it doesn't work.  Here are my configs. 
I get it all working but the problem is the video bridge.  It just has errors and then when users join the meeting everybody else just appears muted and cant see webcams to one another.  We need somebody who knows what their doing to give us the settings they used for the jitsi JVB container (the Jitsi video bridge)

470542520_jitsimeetsettingsd.thumb.png.db5c8f8e954696c749f3f4e71a2c29a4.png

Edited by 007craft
Link to comment
  • 3 weeks later...
On 10/31/2022 at 7:34 PM, 007craft said:

 

 I tried switching to using Jitsi meet on the unraid docker templates instead of docker compose.  I used all 4 containers and got it mostly setup, but alas it doesn't work.  Here are my configs. 
I get it all working but the problem is the video bridge.  It just has errors and then when users join the meeting everybody else just appears muted and cant see webcams to one another.  We need somebody who knows what their doing to give us the settings they used for the jitsi JVB container (the Jitsi video bridge)

470542520_jitsimeetsettingsd.thumb.png.db5c8f8e954696c749f3f4e71a2c29a4.png

 

Yea, I did pretty much the same as you, but clearly it's something that requires more expertise that simply copying the same settings over.  My settings basically match yours (JVB_STUN_SERVERS: meet-jit-si-turnrelay.jitsi.net:443 instead of the google ones you put).  But nothing works and I prefer to have everything running through unraid's docker.  Maybe this will get someone's attention again for an updated guide.

 

Link to comment
  • 5 weeks later...
On 10/31/2022 at 11:34 PM, 007craft said:

 

 I tried switching to using Jitsi meet on the unraid docker templates instead of docker compose.  I used all 4 containers and got it mostly setup, but alas it doesn't work.  Here are my configs. 
I get it all working but the problem is the video bridge.  It just has errors and then when users join the meeting everybody else just appears muted and cant see webcams to one another.  We need somebody who knows what their doing to give us the settings they used for the jitsi JVB container (the Jitsi video bridge)

470542520_jitsimeetsettingsd.thumb.png.db5c8f8e954696c749f3f4e71a2c29a4.png

Did either of you figure this out? having the same problem.

Link to comment
  • 4 weeks later...
On 12/16/2022 at 9:45 PM, Puregreen59 said:

Did either of you figure this out? having the same problem.

Nope, I'm sure someone would post something if it ever got working.  I suspect this isn't a high priority for anyone to fix, and since it operates for those using portainer, nobody is interested in fixing something that isn't broken.  I wouldn't mind following the old setup if it didn't cause a daily error in fix common problems.

Link to comment
  • 1 month later...
On 10/31/2022 at 7:34 PM, 007craft said:

 

 I tried switching to using Jitsi meet on the unraid docker templates instead of docker compose.  I used all 4 containers and got it mostly setup, but alas it doesn't work.  Here are my configs. 
I get it all working but the problem is the video bridge.  It just has errors and then when users join the meeting everybody else just appears muted and cant see webcams to one another.  We need somebody who knows what their doing to give us the settings they used for the jitsi JVB container (the Jitsi video bridge)

470542520_jitsimeetsettingsd.thumb.png.db5c8f8e954696c749f3f4e71a2c29a4.png

 

For focus, meet, video, and xmpp A75G repositories, I got the following error in Fix Common Problems: (jitsi/jicofo:latest) has the following comments: Latest tag no longer exists on dockerHub Additionally, this application has been blacklisted from Community Applications for that reason.

 

I went to the docker hub for one of them and the tags have changed: https://github.com/jitsi/docker-jitsi-meet

 

The "latest" tag is deprecated and now "stable" is the correct tag.  If anyone manages to get this working, they'll need to make those changes in each of the containers.  It says CA blacklisted them, so not sure if they will bring them back.

Link to comment
  • 10 months later...

ive finally got it working properly.
But not that properly...
Im using nginx for reverse proxying it, i got it working. The only issue is, Im getting low bitrates, and only 360p max. It's also not getting better over time. I've opened ports 10000-20000 in my router and have tested calls with 2 or 3 instances on my home LAN. It just won't show in a nice quality. if anyone here has an idea?

The bridge is connected fine, everything is. it's just giving terrible resolution, and only 15 fps.
 

Quote

## Version 2023/05/31

 

server {

    listen 443 ssl http2;

    listen [::]:443 ssl http2;

 

    server_name meet.*;

 

    include /config/nginx/ssl.conf;

 

    client_max_body_size 0;

 

    # enable for ldap auth (requires ldap-location.conf in the location block)

    #include /config/nginx/ldap-server.conf;

 

    # enable for Authelia (requires authelia-location.conf in the location block)

    #include /config/nginx/authelia-server.conf;

 

    # enable for Authentik (requires authentik-location.conf in the location block)

    #include /config/nginx/authentik-server.conf;

 

    location / {

        # enable the next two lines for http auth

        #auth_basic "Restricted";

        #auth_basic_user_file /config/nginx/.htpasswd;

 

        # enable for ldap auth (requires ldap-server.conf in the server block)

        #include /config/nginx/ldap-location.conf;

 

        # enable for Authelia (requires authelia-server.conf in the server block)

        #include /config/nginx/authelia-location.conf;

 

        # enable for Authentik (requires authentik-server.conf in the server block)

        #include /config/nginx/authentik-location.conf;

 

        include /config/nginx/proxy.conf;

        include /config/nginx/resolver.conf;

        set $upstream_app meet.jitsi;

        set $upstream_port 80;

        set $upstream_proto http;

        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

 

    }

 

    # BOSH

    location /http-bind {

        proxy_pass http://xmpp.meet.jitsi:5280/http-bind;

        proxy_set_header X-Forwarded-For $remote_addr;

        proxy_set_header Host $http_host;

    }

 

    # xmpp websockets

    location /xmpp-websocket {

        proxy_pass             http://xmpp.meet.jitsi:5280/xmpp-websocket;

        proxy_http_version      1.1;

        proxy_set_header        Upgrade $http_upgrade;

        proxy_set_header        Connection "upgrade";

        proxy_set_header        Host $host;

        tcp_nodelay             on;

    }

 

    location /colibri-ws {

        proxy_pass http://video.meet.jitsi:8080/colibri-ws;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

    }

}

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.