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


Recommended Posts

When you do the make directories step.  This is the command posted:

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

 

With the letsencrypt docker changing to swag... does the word letsencrypt in the command have to be changed to swag?

Link to comment
  • 1 month later...
On 10/31/2020 at 12:35 PM, Mogo said:

When you do the make directories step.  This is the command posted:

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

 

With the letsencrypt docker changing to swag... does the word letsencrypt in the command have to be changed to swag?

I would like to know this too. If someone set's up a new Jitsi container then this should be clarified. Hope somebody can answer this? Thanks.

Link to comment
On 10/31/2020 at 12:35 PM, Mogo said:

When you do the make directories step.  This is the command posted:

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

 

With the letsencrypt docker changing to swag... does the word letsencrypt in the command have to be changed to swag?

I have checked on my live system and the web/letsencrypt folder exists and is empty. So perhaps it does not matter.

Link to comment

Hi All,

 

i have found a recovery for my jitsi install when it became unusable after a update.

 

Broadly speaking all you have to do is follow SpaceinvaderOne's video and install jitsi again with a small change...

 

1. Backup your old jitsi install (/mnt/user/appdata/jitsi) or just rename the folder.

2. Remove the jisti containers using portainer (delete). The container stack will be recreated in the video guide.

3. Start following the video guide till 8:52, right after the git clone command to pulldown the docker.

4. Goto /appdata/jitsi/github/docker-jitsi-meet and open the docker-compose.yml file in a text editor.

5. Change the version of the docker container which is pulled for the installation to an older version! I used build 4416 which was released around the time when the installation video was posted.

Note: for reference goto: "https://hub.docker.com/search?q=jitsi&type=image"

Then search for jitsi, there is a tab called "Tag" that shows all available container build versions.

 

Modify the docker-compose.yml.

Within the file there are 4 sections corresponding to each container:

image: jitsi/prosody:latest

replace the part after image: with jitsi/prosody:4416

image: jitsi/jicofo:latest

replace the part after image: with jitsi/jicofo:4416

image: jitsi/jvb:latest

replace the part after image: with jitsi/jvb:4416

image: jitsi/web:latest

replace the part after image: with jitsi/web:4416

 

Once done, save the file and exit the editor.

 

6. Continue and finish the install following the guide in the video.

 

Hope that helps to recover broken installs. It worked for me.

Feel free to re-install and test any newer version of jitsi until your install breaks :)

The latest version as of today had issues for me...

 

Thanks.

 

 

 

 

 

 

 

  • Thanks 1
Link to comment
On 6/11/2020 at 5:56 PM, ChadwickTheCrab said:

 

I was having the same issue until I found a script here which I modified to work with SpaceInvader's tutorial and UnRaid. It required me to install bind and lmdb from the Nerd Tools plugin so that 'host' is installed. It sets and updates your public IP inside the sip-communicator.properties file. I have this as a user script running hourly. 

 

#!/bin/bash

#Domain that points to your public IP
DNSNAME="meet.changethistoyourdomain.com"

# get the actual IP from the Internet
IPint=$(host -tA $DNSNAME 8.8.8.8 | grep address | cut -d " " -f4 )

# get the configured IP of Jitsi
IPjitsi=$(grep 'NAT_HARVESTER_PUBLIC_ADDRESS' /mnt/user/appdata/jitsi/jitsi-meet-cfg/jvb/sip-communicator.properties |  grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")

if [ "$IPjitsi" = "$IPint" ]
then
        echo "IP has not been changed!"
        exit 0
fi

#clear config
sed -i '/NAT_HARVESTER_PUBLIC_ADDRESS/d' /mnt/user/appdata/jitsi/jitsi-meet-cfg/jvb/sip-communicator.properties

#get IP and renew line
echo org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=$IPint >> /mnt/user/appdata/jitsi/jitsi-meet-cfg/jvb/sip-communicator.properties

#Restart jocofo
docker restart focus.meet.jitsi
#Restart video
docker restart video.meet.jitsi

 

seems like I have a problem with the persistent volumes of these dockers.

When using the script I wondered why the IP does not change and weird things happen.

But after trying to change  \jitsi\jitsi-meet-cfg\web\config.js from meet.jitsi I recognized, that each time a docker is restarted or even only stopped and started again via portainer, the config files are rewritten.

 

That's not normal behaviour, is it? 😅 

Link to comment
On 12/28/2020 at 4:53 PM, Petty said:

Has anyone tried to enable recording and streaming as an addition to this? I'd love to add those features and was curious if someone's trudged through the muck of getting it working already. 

Same here, I'm trying to get jigasi working, but, I just can't... Has anyone tried ?

 

Thanks for reading.

Link to comment
  • 2 weeks later...
On 12/30/2020 at 1:48 PM, xPliZit_xs said:

Hi All,

 

i have found a recovery for my jitsi install when it became unusable after a update.

 

Broadly speaking all you have to do is follow SpaceinvaderOne's video and install jitsi again with a small change...

 

1. Backup your old jitsi install (/mnt/user/appdata/jitsi) or just rename the folder.

2. Remove the jisti containers using portainer (delete). The container stack will be recreated in the video guide.

3. Start following the video guide till 8:52, right after the git clone command to pulldown the docker.

4. Goto /appdata/jitsi/github/docker-jitsi-meet and open the docker-compose.yml file in a text editor.

5. Change the version of the docker container which is pulled for the installation to an older version! I used build 4416 which was released around the time when the installation video was posted.

Note: for reference goto: "https://hub.docker.com/search?q=jitsi&type=image"

Then search for jitsi, there is a tab called "Tag" that shows all available container build versions.

 

Modify the docker-compose.yml.

Within the file there are 4 sections corresponding to each container:

image: jitsi/prosody:latest

replace the part after image: with jitsi/prosody:4416

image: jitsi/jicofo:latest

replace the part after image: with jitsi/jicofo:4416

image: jitsi/jvb:latest

replace the part after image: with jitsi/jvb:4416

image: jitsi/web:latest

replace the part after image: with jitsi/web:4416

 

Once done, save the file and exit the editor.

 

6. Continue and finish the install following the guide in the video.

 

Hope that helps to recover broken installs. It worked for me.

Feel free to re-install and test any newer version of jitsi until your install breaks :)

The latest version as of today had issues for me...

 

Thanks.

 

 

 

 

 

 

 

Hey! Thanks so much for this post! I recently had to rebuild some stuff from scratch and this helped get my Jitsi service back online!

Link to comment
  • 2 weeks later...
On 12/30/2020 at 7:48 PM, xPliZit_xs said:

Hi All,

 

i have found a recovery for my jitsi install when it became unusable after a update.

 

Broadly speaking all you have to do is follow SpaceinvaderOne's video and install jitsi again with a small change...

 

1. Backup your old jitsi install (/mnt/user/appdata/jitsi) or just rename the folder.

2. Remove the jisti containers using portainer (delete). The container stack will be recreated in the video guide.

3. Start following the video guide till 8:52, right after the git clone command to pulldown the docker.

4. Goto /appdata/jitsi/github/docker-jitsi-meet and open the docker-compose.yml file in a text editor.

5. Change the version of the docker container which is pulled for the installation to an older version! I used build 4416 which was released around the time when the installation video was posted.

Note: for reference goto: "https://hub.docker.com/search?q=jitsi&type=image"

Then search for jitsi, there is a tab called "Tag" that shows all available container build versions.

 

Modify the docker-compose.yml.

Within the file there are 4 sections corresponding to each container:

image: jitsi/prosody:latest

replace the part after image: with jitsi/prosody:4416

image: jitsi/jicofo:latest

replace the part after image: with jitsi/jicofo:4416

image: jitsi/jvb:latest

replace the part after image: with jitsi/jvb:4416

image: jitsi/web:latest

replace the part after image: with jitsi/web:4416

 

Once done, save the file and exit the editor.

 

6. Continue and finish the install following the guide in the video.

 

Hope that helps to recover broken installs. It worked for me.

Feel free to re-install and test any newer version of jitsi until your install breaks :)

The latest version as of today had issues for me...

 

Thanks.

 

 

 

 

 

 

 

 

 

Thanks for finding out the version numbers. I wonder if anyone got a newer version working? Looks like some cool new features. I been trying for 2 days without much luck.

Link to comment

@markinsutton

 

i was able to get the latest version working but only if you did not "update" but just reinstall according to the video.

After the install i usually would get some kind of error/browser crash when connecting to the browser. In this case you would restart unraid server and after this jitsi would work.

I am running whatever is latest from about 1-2 month ago. So a new install seems to be ok but the update according to page 1 might break further updates and would not recommend trying this.

Stop jitsi contianers then uninstall old version by using portainer to remove jisti containers and rename old jisti folder in appdata as a "backup" in case you need it.

Then start new jitsi install from scratch.

When install is done reboot your server. Worked for me.

 

 

P.S. i had to use authentication as described in the step when the .env file is created  otherwise jitsi install would not work at all. 

 

Edited by xPliZit_xs
Link to comment

Ok guys.... i could not resist and did a fresh install using the latest jitsi and it worked for me. Follow my REINSTALL guide below its (99.9% Spaceinvaderone with my own words)

 

Needless to say is that you have to have a working SWAG reverse PROXI.

 

REINSTALL GUIDE

Precondition: This tutorial requires that your letsencypt/SWAG reverse proxi works and your firewall forwarding ports are set correctly. 


UNINSTALL

1. open portainer and select the "stack" of jitsi containers. Select all 4 and stop and then click remove. In unraid web ui click stop on the displayed jitis container
2. open krusader and rename the existing jisti folder in appdata e.g. jitis_bak

INSTALL
1. Open terminal into UNRAID from web interface
2. Paste: curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3. sudo chmod +x /usr/local/bin/docker-compose
4. Install portainer if not already done (use video as in community applications from spaceinvader)
5. mkdir -p /mnt/user/appdata/jitsi/jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb,jigasi,jibri} (press ENTER)
6. mkdir -p /mnt/user/appdata/jitsi/github && cd /mnt/user/appdata/jitsi/github (press ENTER)
7. git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet (press ENTER)
8. use nano to edit the .env file
-> enter: nano env.example (press ENTER)
-> leave the 6 passwords blank at the beginning of the file
-> edit location of the config from: CONFIG=~/.jitis-meet-cfg to: CONFIG=/mnt/user/appdata/jitsi/jitsi-meet-cfg/
-> edit timezone if needed (optional)
-> enable public URL for the web service (remove # in front of line) and then put YOUR full URL of your jitsi webservice under which user can reach jitsi
e.g. PUBLIC_URL=https://geocities.meetmeonjitsi.org
-> remove # from line "DOCKER_HOST_ADDRESS=192.168.1.1" and edit the IP to your current UNRAID IP address
DONT IGNORE the authentication part. USE Authentication
-> remove # from ENABLE_AUTH=1
-> remove # from ENABLE_GUESTS=1
-> remove # from AUTH_TYPE=internal
when using nano press CTRL+O then ENTER to write the file and CTRL+X to exit
9. cp env.example .env (press ENTER)
10. gen-passwords.sh (press ENTER)
11. docker-compose up -d    (press ENTER) Note: if you have done any install before then old jitisi containers may exist already and show up with _1 at the end of the name.
Unused old containers can be removed or pruned later.
12. login to portainer 
-> you will see 1 stack has been created
-> select it and click docker-jitsi-meet to see all four containers
use the video guide to see howto rename them.
Essentially assign proxynet to each container (join network), delete(leave network) the already existing network and rename the container as below for all 4:
- jicofo     -> focus.meet.jitsi
- jvb         ->    video.meet.jitsi
- prosody     ->    xmpp.meet.jitsi
- web         ->    meet.jitsi    

13. Assuming letsencrypt/SWAG is already running correctly then all the necessary files are in place
-> Stop SWAG, Start SWAG

14. open a console window into the container xmpp.meet.jitsi
in UNRAID dashboard left click on xmpp.meet.jitis container (running) and select console

USE as example: prosodyctl --config /config/prosody.cfg.lua register <<YOUR USERNAME>> meet.jitsi <<YOUR PASSWORD>>
PASTE (EXAMPLE): prosodyctl --config /config/prosody.cfg.lua register Johnny meet.jitsi PIW*[email protected]$(J822189429
Press ENTER
Close the console
Restart xmpp.meet.jitsi container
(optional/untested: restart SWAG again. This may resolve that you have to restart unraid (untested))

15. Reboot UNRAID
16. TEST Jitsi

 

 

Just did this myself and worked correctly. If it not working for you then maybe there is an issue with your reverse proxi.

 

Thanks and Good Luck!

Edited by xPliZit_xs
  • Like 2
Link to comment
  • 2 months later...
On 4/21/2020 at 6:52 PM, SpaceInvaderOne said:

How to install the Jitsi stack and run through a reverse proxy. This guide uses docker compose and portainer.

 

 

 

Hey Ed, i'm really hitting the wall with this tutorial.  I'm going through the reverse proxy but the application never askes me to sign in and it crashes my browser and continually disconnects me when I create a room. What info can I provide that could help you figure me out...  

 

LOG: focus.jitsi.meet :

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-set-timezone: executing...
WARNING: CSTUS is not a valid time zone.
[cont-init.d] 01-set-timezone: exited 0.
[cont-init.d] 10-config: executing...
FATAL ERROR: Jicofo component secret and auth password must be set
[cont-init.d] 10-config: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

 

LOG video.meet.jitsi:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-set-timezone: executing...
WARNING: CSTUS is not a valid time zone.
[cont-init.d] 01-set-timezone: exited 0.
[cont-init.d] 10-config: executing...
FATAL ERROR: Jicofo component secret and auth password must be set
[cont-init.d] 10-config: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

 

LOG: xmpp.meet.jitsi:

[cont-init.d] 01-set-timezone: exited 0.
[cont-init.d] 10-config: executing...
FATAL ERROR: Jicofo component secret and auth password must be set
[cont-init.d] 10-config: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

 

Thanks in advance for any help..

Link to comment
On 4/14/2021 at 3:04 AM, PilotReelMedia said:

Hey Ed, i'm really hitting the wall with this tutorial.  I'm going through the reverse proxy but the application never askes me to sign in and it crashes my browser and continually disconnects me when I create a room. What info can I provide that could help you figure me out...  

 

I also had this problem. I then loaded an older version of Github and then it worked.

You are now lucky that this bug was fixed two days ago.

 

The best thing to do is to delete the Docker and the jitsi folder in the appdata and start the tutorial all over again. I just tested it and it's work.

  • Like 1
Link to comment
  • 2 weeks later...
  • 1 month later...

Followed the video tutorial and then the reinstall tutorial @xPliZit_xs posted 

 

I get Jitsi and can create a room but am never prompted for authentication.

Any ideas?

 

EDIT SOLVED: I logged in and it worked, maybe a container hadn't started when I was chomping at the bit.

Edited by beckett
Link to comment
  • 6 months later...
On 1/3/2021 at 6:38 PM, mikewi said:

each time a docker is restarted or even only stopped and started again via portainer, the config files are rewritten.

 

Does anyone know how to keep the config.js? My current Jitsi config (Ubuntu VM in Windows 10) uses special parameters to help limit bandwidth.

 

EDIT:  I found this on Jitsi Self Hosting Docker Guide

 

Jitsi-Meet uses two configuration files for changing default settings within the web interface: config.js and interface_config.js. The files are located within the CONFIG directory configured within your environment file.

 

These files are re-created on every container restart. If you'd like to provide your own settings, create your own config files: custom-config.js and custom-interface_config.js.

 

It's enough to provide your relevant settings only, the docker scripts will append your custom files to the default ones!

 

Unfortunately I wiped my previous install based on SpaceInvaderOne's guide, though I got it working with NPM. I tried adding a public domain after the fact (used duckdns in first install).

 

 

Edited by TheDaveAbides
found additional info
Link to comment
  • 1 month later...

As a complete aside, does anyone have a good answer to why Jitsi Meet seems to be coded not to work with Firefox? Whenever I setup a 1:1 meeting with Firefox, the video is quite low resolution, while in Chrome is much better. This also doesn't seem to be a Firefox limitation, since when I use User-Agent Switcher on Firefox to a Chrome profile, the resolution improves to match the quality I see in Chrome. The Jitsi Meet related threads/github issue devs all point to Firefox limitations, but the User-Agent switch seems to nullify that argument. I still get the websocket errors in Firefox, but I don't really care that much if the video call works and the resolution is acceptable as a Zoom replacement

Link to comment
On 2/7/2021 at 7:23 AM, xPliZit_xs said:

11. docker-compose up -d    (press ENTER) Note: if you have done any install before then old jitisi containers may exist already and show up with _1 at the end of the name.

Unused old containers can be removed or pruned later.
 

 

How do I do this?  I think I have old containers lingering around cause they were all made with the _1 but I dont see the containers as I deleted them from portainer?  So why is it adding _1 ?

Link to comment
  • 2 weeks later...
On 2/9/2022 at 3:30 AM, 007craft said:

 

How do I do this?  I think I have old containers lingering around cause they were all made with the _1 but I dont see the containers as I deleted them from portainer?  So why is it adding _1 ?

In portainer look for "Images". A list of images associated with docker containers and some are marked as "unused". In portainer select them clicking the checkbox and then click the remove button. 

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.