Jitsi Rocks
Tags: blog, opensource
Published: 2020-03-29 05:37:43

---
title: Jitsi Rocks
published: true
date: 2020-03-28 18:53:00 UTC
tags: Blog,FOSS
canonical_url: https://trevdev.ca/posts/jitsi-rocks/
---

Video conferencing is a hot topic right now. Several proprietary solutions have grown in popularity with the unfortunate help of COVID-19. Since the "iron is hot", I'd like to write a bit about [Jitsi](https://jitsi.org/), but more specifically [Jitsi-Meet](https://jitsi.org/jitsi-meet/).

## Why Jitsi?

There are many reasons why you may want to consider using Jitsi, outside of the fact that it's Free/Open Source Software:

- Anyone who can run a Chromium based browser can use it.
- Meetings are dead simple to set up.
- There are no login requirements.
- No data is stored on the host server.
- Everything sent back and fourth is encrypted.
- There are Android/Apple applications for mobile devices.
- There is an Electron-based [desktop application](https://github.com/jitsi/jitsi-meet-electron) with remote-desktop support.
- The server technology relies mostly on bandwidth and is very scalable.

## How to use Jitsi

If you're the sort of person who doesn't want/care to run your own instance of Jitsi, you're in luck! There's a [public server](https://meet.jit.si) that is free for all to use. The easiest way to get your friends/family on-board is to have everyone use Google Chrome.

Here are your easy on-boarding steps:

1. Open Google Chrome (or your Chromium based browser of choice) and head to `meet.jit.si`
2. Pick a unique name for your meeting room.
3. Click the "Go" button.
4. Make sure your microphone/camera permissions are allowed. 
5. Set an optional password.
6. Share the web address to your meeting room with your friends/co-workers/family to open in Chrome/Chromium.

## Deploy your own Jitsi

[Jitsi-Videobridge](https://jitsi.org/jitsi-videobridge/) is the technology used to deploy a video server for conferencing. There are a few other moving parts that you can add/customize for your deployment, such as a SIP server that allows you to call in by phone. You can follow [these deployment instructions](https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md) to set up your own server.

If you're like me and you want a simpler/easier way to tear down and re-deploy, their maintained [docker-compose](https://github.com/jitsi/docker-jitsi-meet) repository is really nice. You can easily clone it, set up your own custom `.env` file from their `env.example` file, commit your local changes, and pull in their updates whenever you want.

All I had to do from here is set up one of Digital Oceans floating IP addresses, point a subdomain at it and then fire up a Digital Ocean droplet with docker pre-installed. Within seconds I could ssh into the droplet, clone my custom version of docker-jitsi-meet onto the server and run `docker-compose up -d`. Within 10 minutes I had my own video conferencing service.

I didn't dig too deep into it, but docker-jitsi-meet also has documentation/config options for running Jitsi on your LAN, so if you don't want to pay for a droplet, or fuss with re-provisioning at all, you can just self-host at home.

## How well does it work?

I've used just about every video conferencing app out there. I'm happy to say that it performs just as well as some of the major players like Google Hangouts and Zoom. When using it in the browser your mileage may vary: sometimes participants have a hard time figuring out/understanding how to troubleshoot webapps, sometimes they use the "wrong" browser, or perhaps have one too many plugins. These aren't problems that are unique to Jitsi and there are desktop/mobile apps to help make up for them.

You also have the benefit of using a service that you can control and isn't out to make a product out of you, or perhaps [fail to be accountable on their own](https://www.forbes.com/sites/zakdoffman/2019/07/09/warning-as-millions-of-zoom-users-risk-webcam-hijack-change-your-settings-now/#1f8c2f8942d9).

Give Jitsi a try! Free software gets better the more people use it :)