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:
-
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. -
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 Type | Hostname | Public IP | TTL (Seconds) |
---|---|---|---|
A | meet.dendi.me | Public 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
-
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.
-
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
-
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. -
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…