Skip to content

Setup Jitsi Meet di Ubuntu 20.04

Published: at 06:36 PMSuggest Changes

Pembuka

Pada awal november, google meet menetapkan limitasi waktu kepada free user menjadi sebatas 1 jam saja, jadi jangan kaget jika tiba2 meet berhenti jika sudah satu jam. Lalu google meet menawarkan paket premium seharga 10$/bulan untuk memperpanjang waktu meet dan mendapat fitur lain yang tidak ada di free user. Sebagai seorang yg mengaku2 IT Engineer tentunya saya tidak akan memilih solusi tersebut dan membuat solusi sendiri.

Jitsi adalah opensource project untuk video conference (meet). Dengan project ini saya mencoba mengatasi masalah di atas selain dengan membayar fitur premium google meet atau menyewa zoom. Fitur jitsi bisa dibilang sangat lengkap, hampir semua fitur yang ada di google & zoom ada juga jitsi. Karena jitsi ini opensource, kita bisa menginstall nya dimanapun, di lokal computer maupun server vps.

Tapi muncul pertanyaan, jika ingin online meet dengan jitsi kita harus menyewa server/vps yang memiliki publik IP, jadi sama saja kita membayar? Hmm benar tapi… banyak sekali cloud provider yang menyediakan server/vps gratis seperti dalam program student, free tier dll. Maka pertanyaan tersebut terjawab :)

Prasyarat

Untuk melakukan Setup Jitsi Meet di Ubuntu 20.04 hal yang kita butuhkan sebagai berikut:

  1. VM/VPS dengan public IP, disini saya menggunakan VM dari Azure Student (gratis) dengan spek singkat 2 CPU/8 GB RAM, Ubuntu 20.04, Australia East ini sangat cukup untuk menjalankan jitsi.

  2. Domain Name (Optional), ini untuk memudahkan akses kita ke jitsi meet, dan mempercantik url.

Instalasi

Berikut cara untuk install jitsi meet di Ubuntu 20.04:

1. Pastikan system sudah up-to-date lalu tambahkan repository yang dibutuhkan

# Mengambil versi terbaru package
sudo apt update

# pastikan support apt repositories served via HTTPS
sudo apt install apt-transport-https

# di ubuntu, Jitsi membutuhkan depedencies dari Ubuntu's universe repo
sudo apt-add-repository universe

# menambahkan lua repostiory dan menginstallnya
echo deb <http://packages.prosody.im/debian> $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget <https://prosody.im/files/prosody-debian-packages.key> -O- | sudo apt-key add -
apt install lua5.2

# menambah repo jitsi meet
curl <https://download.jitsi.org/jitsi-key.gpg.key> | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] <https://download.jitsi.org> stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null

# Mengambil versi terbaru package dari semua repository
sudo apt update

3. Setup domain

Untuk domain bisa tambahkan dns record type A seperti dibawah ini

Record TypeHostnamePublic IPTTL (Seconds)
Ameet.dendi.mePublic IP (x.x.x.x)1800

Di atas saya menggunakan meet.dendi.me dan di step berikutnya juga saya akan menggunakan domain ini, jadi bisa temen2 sesuaikan dengan domain yang temen2 punya.

4. Konfigurasi firewall

Membuka port yang digunakan oleh jitsi

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable

sudo ufw status verbose

5. Sekarang Install jitsi

sudo apt install jitsi-meet

Jika muncul popup hostname, isi dengan domain kamu dan gunakan lets encrypt tls.

6. Update systemd limits edit /etc/systemd/system.conf

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

reload

systemctl daemon-reload

7. Test akses jitsi dari browser

Seharusnya sekarang jitsi sudah bisa diakses dan sudah bisa melakukan video conference.

Authentication (Secure Domain)

Mungkin kamu sudah mencoba untuk membuat room meet dan mulai bertanya jadi semua orang bisa menggunakan jitsi meet saya? jawabnya iya, maka dari itu kita akan melakukan konfigurasi tambahan dengan menambah authentication. Nantinya hanya authenticated user atau admin yang bisa membuat dan menyelenggarakan meet di server kita. 

Berikut cara untuk konfigurasi autentikasi jitsi meet:

1. Konfigurasi Prosody, edit /etc/prosody/conf.avail/[your-hostname].cfg.lua

didalam VirtualHost "[your-hostname]" block, ubah authentication dari anonymous menjadi seperti dibawah.

VirtualHost "meet.dendi.me"
    authentication = "internal_hashed"

Tambahkan block ini setelah block VirtualHost sebelumnya

VirtualHost "guest.dendi.me"
    authentication = "anonymous"
    c2s_require_encryption = false

untuk guest.dendi.me ini hanya untuk keperluan internal jitsi, kita tidak perlu menambahkan record dns atau tambahan konfigurasi lain.

2. Konfigurasi Jitsi Meet, edit /etc/jitsi/meet/[your-hostname]-config.js

Set anonymousdomain seperti dibawah ini. Sekali lagi kita tidak perlu memikirkan guest.dendi.me ini subdomain apa, intinya itu hanya subdomain palsu yang digunakan internal jitsi.

var config = {
    hosts: {
            domain: 'meet.dendi.me',
            anonymousdomain: 'guest.dendi.me',
            ...
        },
        ...
}

3. Konfigurasi Jicofo, edit /etc/jitsi/jicofo/jicofo.conf

tambahkan section authentication baru seperti di bawah ini

jicofo {
  authentication: {
    enabled: true
    type: XMPP
    login-url: meet.dendi.me
 }
 ...

4. Terakhir, Buat user di Prosody

sudo prosodyctl register <username> meet.dendi.me <password>

lalu restart restart prosody, jicofo and jitsi-videobridge2

systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2

5. Cek autentikasi berjalan dengan baik

Sekarang seharusnya saat kita membuat meet baru akan muncul popup Waiting for the host... untuk masuk klick I am the host gunakan user password yang telah dibuat di Prosody.

Jika kamu mencoba klick Cancel maka akan di redirect ke halaman awal jitsti meet, dan meet tidak akan dimulai.

Review

Saya melakukan percobaan menggunakan jitsi ini untuk meet sekitar 5 orang, dan hasilnya lancar dan tidak ada lag walaupun server yang saya gunakan berada di Australia. Berikut detailnya

  1. Kualitas Video

    Di jitsi kita bisa mengatur performace video conference kita menyesuaikan dengan kestabilan internet kita. Saya memakai kualtias paling baik dan tidak membuat lag yang siginifikan.

  2. Pemakain CPU dan RAM

    Untuk RAM saya idle di 1000MB an dan saat digunakan untuk meet 5 orang tidak ada kenaikan yang siginifikan, bahkan kurang dari 100MB. Begitu pula dengan CPU load avarage disekitar 0.20 saja

  3. Fitur Record

    Di jitsi sudah bisa record tetapi output formatnya .webp tentu bisa di convert ke mp4 atau format video lainya dengan menggunakan tool 3rd party. Kualitas video recordnya oke, mungkin ini tergantung settingan di point 1.

  4. Fitur Lain

    Banyak sekali fitur di jitsi ini yang tidak bisa saya coba dan jelaskan satu2, mostly fiturnya mirip dengan yang ada di zoom dan gmeet. Beberapa fitur mainstream seprti chat, pooling/vote, virtual background, reaction, share screen, breakout room, dan lain sebagainya.

    Jika ada yang ingin menambah review bisa tulis di komen!

Kesimpulan & Penutup

Jitsi bisa menjadi solusi untuk mengatasi platform video conference yang berbayar, tentunya jika kita punya server VPS yang gratis, karna jika melakukan sewa VPS sama saja bayar :). Dan karena project ini opensource kita bisa kustomisasi sesuai dengan yang kita inginkan. Banyak sekali aplikasi2 opensource di luar sana yang bisa mengatasi masalah2 kita dari skala kecil hingga yang besar sekalipun.

Sekian tulisan ini dibuat, jika ada kesalahan bisa diinformasikan. Sampai bertemu lagi, semoga…


Previous Post
Lupa sudo saat menulis di vim
Next Post
Setup Gitlab Server