Phew, what a day! Just finished my installtion of Jitsi meet on my linux server (DigitalOcean droplet).

You know when you go to Jitsi website and start exploring as a beginner, you find it really hard to navigate, not so much documentation, any beginner like me can get lost easily and becomes frustrated.

Well, I have my fare share of working knowledge on WebRTC and some SFU, I wanted to explore Jitsi meet too. So this post will not be the last, rather it will be the first one of a series. I’ll keep writing about my journey and how to customize and tweak it eventually.

What stuffs do you need? (This is my list)
  1. A linux server - (Ubuntu-16.04 LTS)
  2. Jitsi meet repo (Don’t worry apt will do that for us)
  3. nginx (Proxy)
  4. Let’s encrypt (Everybody needs https)
  5. ufw (Uncomplicated firewall) (We will get it covered)
  6. A domain (I bought mine from Namecheap)

They have a experimental Docker image for jitsi right now, but I didn’t test that out.

I’m using Digital Ocean droplet for my linux machine with following configuration,
  1. 1 vCPU
  2. 2GB of memory
  3. 25GB of diskspace (You don’t need that much actually)
  4. Ubuntu 16.04 LTS with pre-installed ufw package (get it from apt)

Now the best part, let’s get it rolling.

Spin up your server. I’ll just start with a clean set, nothing preinstalled. Trust me having a freshly brewed server will save you from a lot of issues and shooting yourself in your foot. After spinning up the machine, it’s time to register a domain. I got mine from Namecheap, you can get it from anywhere, just make sure you’ve all the controls over the domain and DNS settings. Attach your “domain” with your server, DigitalOcean has great features to do it easily. You just have to add domain from Add Domain section and couple of DNS entry to Domain/Nameservers section in Namecheap dashboard.

It’s time for ssh into the server, make sure you’ve the ssh access. Now at first we’ll configure that firewall for our server. We’ll use ufw to configure the firewall. ufw just a simple tools with which you can configure which port and which transport mechanism the server need to use to permit access from outside world. Now if you don’t have it installed, please install it and come back to this article, I’ll wait here.

Now that you’re done with your ufw configuration, we can move forward. At first check if ufw is enabled with the following command,

> ufw status
WARN: / is group writable!
Status: active

If the status is not active, use the following command to activate it.

> ufw enable

Use the following port configurations with ufw to set up the firewall. You can use the following commands into the terminal.

> ufw allow in ssh
> ufw allow in 80/tcp
> ufw allow in 443/tcp
> ufw allow in 10000:20000/udp

Run the ufw status command again to see the already configured port.

Now it’s time to setup the proxy server nginx. Install it with the following command,

> sudo apt-get -y install nginx

It’s jitsi-meet time! After you’re done with nginx use the following commands to install jitsi,

> wget -qO - | sudo apt-key add -
> sudo sh -c "echo 'deb stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
> sudo apt-get -y update
> sudo apt-get -y install jitsi-meet

During the installation you’ll be asked some things, that you’ll have to handle correctly, otherwise you’ve to start full cycle again (to ensure proper installation without thinking too much). Trust me I’ve my fare share to go through the rabit hole.

At the time of installation you’ll be asked to enter your hostname attached with the server. Carefully enter your domain name, only the domain name without any type of www or http|https prefix. For example, I would enter my domain as with nothing else prefixed with suffixed with the domain.

After you enter you’re domain, you’ll be asked, if you want to Generate a new self signed certificate or do you want to Use your own certificate. Choose Generate a new self signed certificate, we’ll get back to it later.

Now the installtion will continue and eventually be completed. After the installation is complete, run the to configure https with Let's encrypt.

> /usr/share/jitsi-meet/scripts/

This script will ask your email address for proper reasons 🤪

That’s it! Now, if you head over to your website root, you’ll see something like this,

jitsi welcome

If this is something you see, Welcome 🎉 🎉 🎉 you’ve done it. Start a video chat with someone you love 😍

In case you’ve screwed up 🔩 👆

If you think you’ve screwed up everything just run the following command twice, because sometimes jicofo and jitsi-videobridge component doesn’t get removed completely on the first run.

> apt-get purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-web jicofo jitsi-videobridge

and the following command to remove nginx.

> sudo apt-get purge nginx-full nginx-common

Now it’s time to start over 🤕

This post is a walkthrough form of This video, with necessary modification needed for my requirement.

If you like this post. Share it/ Tweek it. Live long and prosper 🖖