How to Setup Jitsi in Docker with a Reverse Proxy on Unraid

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Dont use zoom or Skye. Self host your own video meeting server. Hope you guys find this useful :)

๐Ÿ‘๏ธŽ︎ 45 ๐Ÿ‘ค๏ธŽ︎ u/spaceinvaderone ๐Ÿ“…๏ธŽ︎ Apr 21 2020 ๐Ÿ—ซ︎ replies

This is awesome! Thank you once again u/spaceinvaderone

๐Ÿ‘๏ธŽ︎ 8 ๐Ÿ‘ค๏ธŽ︎ u/DCPDad ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

He Delivers! I take it you saw all of the requests on the forum for this, but Iโ€™m curious if you were already working on this. Thank you for all you have done for the community, you are a rockstar!

๐Ÿ‘๏ธŽ︎ 6 ๐Ÿ‘ค๏ธŽ︎ u/plusoneinternet ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

I followed this but wondering if this is the best solution long term. Renaming the containers, changing the networks, etc... if you bring Jitsi down and back up again with docker-compose those changes won't be preserved. Couldn't these changes be made in the docker-compose.yml?

I have mine up and running, but it simply isn't working. I can start a meeting on my computer but when I join on my phone the devices cannot see the other video streams.

๐Ÿ‘๏ธŽ︎ 5 ๐Ÿ‘ค๏ธŽ︎ u/EricFrederich ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

I love your videos and I think โ€œAuthentificationโ€ should be on your tshirts. ๐Ÿ˜†

๐Ÿ‘๏ธŽ︎ 7 ๐Ÿ‘ค๏ธŽ︎ u/sk8boy204 ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

this is a great guide and I got it up and running relatively easy as I have used compose and portainer quite a bit. one weird thing im not sure if anyone else has come across.

I type in meet.mydomain.com (substitute for my actual domain of course) and the meeting so meet.mydomain.com/test and on mobile devices it inserts index.php as the sub site and adds a question mark on the suffix so the full link looks like https://meet.mydomain.com/index.php/test?

anyone else experience the same? no issue on desktop browser and if i manually remove the .php and ? it comes up fine on mobile. tested on FF on Android and on Chrome/Edge on an iPhone both with same result.

๐Ÿ‘๏ธŽ︎ 3 ๐Ÿ‘ค๏ธŽ︎ u/diabillic ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

SpaceInvader - your videos for unRAID are rad... A while ago I noticed that you had a link to pfSense up along the tabbed browsing elements of unRAID located to the right of Apps and Tools. i was curious how that was setup and I would love to know how that was setup and would also love to see some pfSense configuration incorporated in your unRAID vids for instance setting up LAGs with LACP for quad gigabit to the server. Thanks for all the time youve put in.

๐Ÿ‘๏ธŽ︎ 3 ๐Ÿ‘ค๏ธŽ︎ u/88pockets ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

Since this isn't a normal unraid container, how do you handle updates to the jitsi components?

๐Ÿ‘๏ธŽ︎ 2 ๐Ÿ‘ค๏ธŽ︎ u/mattyx ๐Ÿ“…๏ธŽ︎ Apr 22 2020 ๐Ÿ—ซ︎ replies

Has anyone been able to update their docker?

๐Ÿ‘๏ธŽ︎ 2 ๐Ÿ‘ค๏ธŽ︎ u/edsmall ๐Ÿ“…๏ธŽ︎ May 06 2020 ๐Ÿ—ซ︎ replies
Captions
hi guys so welcome to another video so you ought to do some video conferencing maybe just chat to your friends family or work colleagues and you want to do all privately hosted on your own server well jitsi is what you need so if that sounds interesting then let's get started [Music] okay so I'm sure we've all used some sort of videoconferencing software before whether it's FaceTime with iOS but then what you're going to do if you don't have an iOS device well maybe you can use Skype well no thank you I don't think I do use Skype no matter how happy this guy looks here using it so some people have been using soon recently but all of these solutions that go through someone else's server and if you take your privacy really seriously then maybe you should consider using jitsi it's very very secure it's totally free there's no time limits of like 40 minutes like zoom and the best of all we can run it on our own server now can I hear you asking is it easy to set up well it's not too bad if you follow the guide anyway but really I hate to break it to you if you watch my videos you are a nerd and us nerds don't always take the easiest way to do things that we do do things the best way so why use a video conferencing system that goes through someone else's server when you can set it up on your own and have full control of all of your data and hey look at these guys using jitsi some of them even look almost as happy as the people using Skype so here I've got it running on one of my servers and before I start this video I'm going to kind of start it the wrong way around I'm going to show you gypsy running because I want to just talk about the authentification that jitsu uses I'm showing this now so you can choose whether you want to use authentification or not before you do the install because during the install you're going to have to choose whether you do or not now if you have it with no authentification at all anyone can come here and start a meeting just by typing in the name of the meeting that they want you just allow the camera and inside of your browser you can have a conference with anyone you want for someone to join this meeting that have to know the name of the meeting that you created there's no kind of public lists of all the meetings running also the person who creates the meeting can make it more secure so random people can't just join by creating a password for that particular meeting that password would have to be shared with all of the participants who wanted to be able to join so now let's hop onto another gypsy sir but where the authentification is running now this time on this server when we go to create a meeting it's going to ask us to authenticate ourselves by entering the credentials of a user that's stored on the server this basically stops people from randomly finding your page and using it to host their own meetings so I think it's best to always have authentification and the creator of meetings can make it more secure by choosing a password for the meeting as well but all of these authentification methods are optional and it's up to you how you want to run your server okay so let's carry on there's a few things that we're going to have to have installed to be able to use jitsi we're going to need a reverse proxy and in this video i'm using the linux server guys let's encrypt container which i think is excellent now if you don't have a reverse proxy setup and i've got videos showing how to set up that sink critique an watch here now also we're going to have to forward some ports are unread server course we're going to need the port forwarded to our reverse proxy that we always use but in addition to that we should forward port UDP 10,000 also to the IP address of our unread server now we're going to install gypsy and docker and gypsy takes up multiple docker containers for a norm now we're not going to install these containers in the normal way that we normally would on one raid by using community applications we're going to install it using something called docker compose which allows us to install multiple containers all at once so it's really easy docker compose is installed by default on raid that only takes a few moments to do so so let's start with that okay so the first thing we need to install on our server is a program called docker compose and we're going to do that from the command line so click on a button to open the terminal window then paste in the following command now all of the commands in this video are going to be in a file in the description so you can just copy and paste them easily yeah it really is that simple docker compose is now installed that's one more thing we have to do before it works because if we try and use docker compose we'll get permissions error here I'm just checking the docker compose version then you can see now it says permission denied so all we have to do is actually change the permission of the file so again just paste in this command that they chmod plus x command here and that will make the docker compose file executable so I'm going to run the command to check the docker version again and this time I'm getting no error is telling me the version okay so that's docker compose installed so we can leave the terminal window now so the next thing we need to install to make things easier there's a container called porteรฑo so let's jump on over to the apps tab and do a search for cortana okay so now click on the icon to install now there's nothing we need to fill in in the template at all the container uses port 9000 so as long as you've got nothing else that uses that port you can just click on apply to pull down the container okay so once it's installed we'll come back to this page here so click on the little world icon to kind of go to the web UI then here we just need to make a username and password I'm going to leave my username is admin and then just pop in a password twice below and click on create user so if the user creative it brings us to this screen here so we want to click on to local by clicking local will allow us to connect to the Unrated servers docker service so click on connect on the bottom left and now I'm connected to my own raid server you can see here it says local if I click onto that then I can see all the containers that are running on my server but we're not going to use port aney yet we're going to care under setting it up so go back to home and then on the right hand side next to where it says group unassigned you'll see little edit button click onto that and here we can just put in some info about our server I'm changing mine from being called local to prime which is the name of my server and where it says public IP address I'm actually going to put in my LAN IP address of the server for me that's ten 10.20 dot $1.99 you also be different so you click on to update endpoint and that's all of the configuration now down clicking on the home button we can see now that my server is listed and it's called Prime okay so we're going to come back to using porteรฑo later but now we want to go back to our run rate server so the next thing that we're going to do now is we're going to create a location for to install gypsy into we want to install gypsy into the app data share so let's click onto the shares tab and have a look inside the app data folder so across on the right hand side from the app data I'm going to click on its view icon here and obviously if I look down through the folders in my app data share well of course I'm not going to find a folder for gypsy so let's create one let's open the terminal again and for all you people who are going all no not the terminal again come on it's not that bad all you have to do is copy and paste commands into here it's really easy so we're gonna paste in this long make directory command and what it's doing is it's making a folder but then various sub folders which jits is gonna use okay so they're create it now and if you want to just check then minimize the terminal window then just refresh this page that we have the Gypsy folder there and inside of that we've got all these other folders that it's going to be using so all the folders were created properly so let's go back to our terminal window again now now let's create another folder we're going to download some things from github that we're going to use to install the containers that we need for jitsi now this command is going to make a directory in the folder we have for gypsy inside the app data it's going to make a folder called github and then the second part of the command after the end and this is just going to change directory into that folder that we've just created there okay so I'm going to hit enter to execute that command and here we are now inside of that folder let's make a little bit of space right okay so what's next well obviously if we type LS and look inside in this folder there's nothing here yet that's because we need to pull down the files we need from github so let's paste in the next command the git clone one then hit enter and you can see now it's pulled down all of the files I need so now when we list the files by typing LS we can see a whole bunch of files that have been pulled down okay let's make some space again and now type or paste in the next command Nano space env example and then hit enter okay so we've opened this text file in the text editor Nano okay so this text file contains a bunch of variables that's going to be used by docker compose in a moment when we install the jitsi containers okay so the first thing you can see here is a bunch of passwords that it's asking for now we don't need to actually fill that in at all because in a moment we're going to use a program that's going to generate some really strong passwords for those six things but the first thing we want to change is actually the location of the configuration directory and that's this line here so I'm going to delete what's already in here then we need to paste in the updater location that we just created earlier now again this whole line is in the description so you can just copy and paste the whole lot okay so next we're going to scroll down till we come to the system time then you want to adjust the system time to your timezone by default it's Europe Amsterdam I'm in the UK so I'm going to change my time so into your at London okay so underneath here we've got the public URL for the web service now we're going to enable that and change it to enable it just remove the hashtag from the front of the line like this now put in the subdomain and URL that you have points into your let's encrypt container now of course you don't put meet your domain comm I just mean you put in your subdomain of whatever your domain is okay so underneath here we've got the section IP address of the docker host again we want to remove the hash tag from the beginning of the line to activate that and then we want to change the IP address here to be the same as what your unread server is because your unread server is the docker host in this situation now my IP address is 1010 $21.99 you can see it at the top here so I'm going to type that in here now scrolling down ignore this bit where it says let's encrypt configuration we don't need to fill out any of this in now the next bit we need to fill in well that is if you want to actually have authentification on the server if you're not bothered of you want it totally open you can ignore this box but I really suggest that you have authentification on the server just to stop people may have to create their own meetings without your permission so to enable the authentification we must take away the hash tag in front of that so it says enable orthey equals one what this does this means that users have to authenticate onto the server so they have to be set up with a username and password so when set like this everyone starting a meeting or joining a meeting will need to have a user account on the server now this isn't always very convenient so what I'm going to do as well underneath is I'm going to enable guests by removing the hash tag in front of this line enable underscore guests equals one what this will do is allow people who go on to my jitsu server to join a meeting that's already created without having to authenticate having their own username and password on the server but these guests can't create their own meeting oh you have one other thing you can actually add a password to each individual meeting when it's created and when that password is created anyone that joins that particular meeting will have to know the password to join in so even with guest access is still pretty secure we will be looking at all of that later on in the video when we got the server up and running okay so moving on underneath here we're going to change your authentification type to internal and just remove the hash tag from this line to enable that okay cool so that's all the authentification set up if you scroll down through all of this I don't think there's anything else we actually need to set up here now that's everything we need to edit so now we can press control the know to write out the file then enter then we can exit the Nano text editor by pressing ctrl + X now we're back into the terminal here so let's clear the screen okay so the file that we edited was the example file so now we need to copy it to the actual working file the DNV file so paste this copy command into the terminal this part here the CP part is the copy command then we're copying the env example that we just edited and we're copying it to be this name here the dot env file so hit enter and that file is copied now if you were to list the files in this directory you won't actually see the file that's because a file with a dot in front of it is basically invisible so it is there and it has been copied I remember earlier when I said don't bother putting in those passwords in the file we just edited because we're going to use a program to create some well now is the time to do that and to create those passwords we're going to run this script here so in terminal either type or paste the following gen - passwords dot sh then just hit enter to generate those passwords ok so that's everything ready now we can pull down the containers and there's dahl them on the server ok so let's clear the screen now paste in the following commands docker - compose up space hyphen D now to enter ok so it's pulling down the containers and that's done ok so that's all of the difficult bits done now so we can close this go back to the unread server and then to the docker tab and here we can see four new containers now these containers are part of a group or what's known as a stack now because we installed these with docker compose we can't actually manage them from the unread web UI you can see here there's no button to edit and there's no button saying web UI we can only start stop and pause them however from potato we can manage these containers so I'm logging into my porteรฑo instance now I'm going to pop in my username and password and here we are back on the portator home page I'm gonna click on this icon here to log into my server Prime and here we can see porteรฑo says I've got one stack running so I'm going to click on to stack and this stack is named docker jitsi meat so I'm going to click onto that there are the four containers that make up this stack those same containers that we just saw on your own raid docker tab now there's a couple of changes we have to make to these containers the first of which being changing the network that these containers are running on so I'm going to go to this first container at the top of the list and scroll down to the very bottom of the page and here we can see the network that this containers currently running on and it's running on a custom network the docker compose creative when we install the containers but we need these containers to be running on the same network that are let's encrypt reverse proxies and for me that's the network called proxy net so I'm going to click onto that and then click this blue join Network button here ok so now the containers join that Network looking at the bottom again we can see it's now a member of two networks we don't need that top gypsy meat network so I'm going to click on leave network so this container is that only connected to the proxy net network ok so now we need to do exactly the same for all of the other containers that are part of the stack so I'm going to quickly go through and do that now I won't bore you with letting you watch me do this so I'm going to speed it right up ok so now all members of this stack are a part of the proxy net network so the last thing we need to do here is change the name of all these docker containers and yes it is important to do this so don't skip this part so let's start with the one at the top here this Jacobo container so after clicking on its name it brings us to this page here again if we click on to this little edit icon here it will allow us to change the name so I'm going to delete this out and then call the container focus meet gypsy with that down and the click this little tick icon here to confirm the changes and we can see it says the container successfully been renamed ok so on to the next one let's rename this one here the jvb container so again click onto it click the edit button this container we're going to name it video dot meet jitsi and again click on the tick to confirm and so now let's rename the next one let's rename the web one here and this container we're going to name it meet dodge it see okay so let's finally rename the last one this prosody container at the bottom this one we need to name XMPP meet or jitsu ok so that's all of our containers now renamed that's everything we need to do import aina now if you happen to click on any of these here then basically none of these are going to work that's expected at the moment because we need to set up the reverse proxy so we can close to a port a the web interface now now if your let's encrypt reverse proxy container is running but make sure you stop it now ok then go to your desktop and then download the proxy config from the description of this video once you've done that you need to browse to the updater folder on your server I'm using a Mac but it'll be very similar on Windows so open the app data share and go to the let's encrypt folder here then nginx and finally proxy comes now this proxy config file here it assumes you've got a subdomain setup which is meet dot and then whatever your domain name is now if you didn't want to have that as your subdomain and you could set up a cname with a different name and you put in that sub domain here so if you wanted to have it as gypsy you would change this meat here to Gypsy and that would be your sub domain okay so now we're going to copy this file inside this folder here there it is and let's go back to our web UI and now we can restart the let's encrypt container now what we want to do is have a look at the log quickly ok so we can see there's no errors here at all but the bottom it says server ready now don't worry about this in the blue here it always says that and it makes absolutely no difference everything will work fine so let's close this and open up a new tab and put in the web address for our Gypsy server there we are we're straight in and we've got that lovely padlock showing it's secure now remember when we set up the environmental variables earlier we made it so to create a meeting we need a password so I'm going to create a test meeting at the moment I'm going to call it Atari and click go and it's asking me if I want to share my camera I've only got one camera on this computer and I can share my microphone so I'm going to click allow and you can see here it says it's waiting for the host now I am the host so I'm going to click I am the host and this is where it's asking for a username and password but we haven't actually setup any users on the server yet so it's not going to work as yet so let's click cancel and close this page down now what we need to do is we need to go to the container that's named XMPP beat Jitsu click onto it here and go to console let's paste in this command from the description and there's two things we need to change here need to change this username here to the username that we want to use and we need to change this here the password to the password that we need to use now this part here the meet jitsi that has to be there don't change that to anything else else it won't work now unfortunately when we bash into a container like this we can't actually press the back our owner go back it just print some strange characters so it's probably easier just to delete all of this out open a text editor and then paste the commands into here first and then change the username and the password so now when we've done that we can just copy this and paste it into the terminal window completes and hit enter now you get no confirmation literally we'll just come up like this with in line underneath so now I've created that user Edward with the password of unraised if you wanted to pin any other users then you create them now okay so let's close this and now we should restart this container here we only need to restart this container because this web does the authentification for the users we don't need to restart the other containers here so let's go back to the page and we can see here there's that meeting I created earlier now a lot of people worry when they see the meetings they've been in before that those meetings are still there actually they're not it's just saved by your actual browser if I was to open a private browser window then you see that list isn't there that history is only stored locally in the browser that you're using anyway let's go back to the main browser I was using the one with the history okay so I'm going to click on this Atari meeting again now I'm going to allow the microphone and camera yep I am the host okay so it's asking for my username so type in Edward and password on rate now and click OK no yeah it's connecting attending the session ID and there we are inside of the meeting yeah yeah I know I know I've pointed the camera up at the ceiling we've been on lockdown for a while here in the UK and I really couldn't be bothered to kind of have a shave and make myself look decent for making this video so sorry guys you're gonna have to miss out on looking at my handsome face and we'll just have to carry on now if I wanted to add a password to this meeting I'd go here and I click add password and I'm gonna put the password as unread again so now if any of my guests want to join this meeting they're gonna have to know the password of own raid so I'd have to tell them that first right so I'm gonna start wrapping up this video now I think it's pretty much come to an end oh actually one last thing now that our apps for gypsy that you can use on Android and iOS so you can do your video meetings on your cell phone so with the app on your cell phone it's slightly different Here I am on my Android phone I'm sure it's pretty similar for iOS now you're going to need to go to settings and then where it says server URL here we need to put the URL where our gypsy servers installed so basically HTTP colon forward slash forward slash meets your domain comm so obviously it's not literally your domain calm it's whatever your domain name is with the subdomain so once you've done that the app will connect to your server then you can create or join a room so I'm just going to create one called test here and then click on create join again because I'm creating the room it's going to ask for my username and password so I'm going to pop that in here and after a few moments you'll say connecting and once connected you can then start using the app and you are in the meeting so that's a very very quick rundown of how to use the Android app I'm sure the iOS app is pretty much the same but I don't have an iOS phone to be able to test it with okay then so that brings us to the end of this video now I really hope you found it useful and you can use this to set up your own chips you server and you can use it to speak to friends family and work colleagues and you can do that all privately on your own server with end-to-end encryption now of course to all of my patrons and supporters out there thanks a lot guys for supporting me and making it possible for me to make these videos I really really do appreciate it and thanks to everyone out there who takes the time out to watch my videos now if you liked it then please please hit up that like button subscribe to the channel if you haven't already and share this video if you think anyone you know might be interested in anyway guys it's time for me to go now but whatever you're up to for the rest of the day I hope it's good stay safe and I'll catch you in the next video
Info
Channel: Spaceinvader One
Views: 31,721
Rating: undefined out of 5
Keywords: jitsi docker, jitsi reverse proxy, jitsi nginx revers orxy, jitsi unraid, setup jitsi, self host jitsi, how to setup jitsi, spaceinvaderone, limetechnology, unraid, unraid tutorial, unraid tutorial jitsi, jitsi
Id: yD6FJEYRpsY
Channel Id: undefined
Length: 24min 22sec (1462 seconds)
Published: Tue Apr 21 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.