
Ubuntu Üzerinde Docker ile Jitsi Kurulumu
Kısaca Ubuntu üzerinde Docker ile stream yapılabilen ve kayıt tutulabilen bir Jitsi sunucusu kurulumunu anlatacağım. Ayrı bir sunucuya Videobridge (jbr) kurmak yerine tüm bileşenleri Docker ile tek sunucuya kurabiliriz. Docker ve Docker Compose kurulumu için bakınız.
-
Kayıt ve Yayın Opsiyonu
Kayıt ve Youtube yayını yapmak için ana bilgisayarda linux-image-extra-virtual
paketini de kurup ALSA loopback modülünü ayarlamamız gerekiyor. Bu Videobridge'in çalışması için gerekli.
apt-get install linux-image-extra-virtual
echo "options snd-aloop enable=1,1,1,1,1 index=0,1,2,3,4" > /etc/modprobe.d/alsa-loopback.conf
echo "snd-aloop" >> /etc/modules
reboot
ALSA modülünü aktifleştirmek için sunucuyu yeniden başlatmak gerekli.
lsmod | grep snd_aloop
snd_aloop 24576 0
snd_pcm 98304 1 snd_aloop
snd 81920 3 snd_timer,snd_aloop,snd_pcm
-
Github üzerinden Jitsi Kurulumu
Jitsi kurulum ve konfigürasyonu için https://github.com/jitsi/docker-jitsi-meet adresini inceleyebilirsiniz. aşağıdaki komutlarla IP adresi üzerinden 8443 portuyla kullanmaya başlayabilirsiniz.
git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet
cp env.example .env
./gen-passwords.sh
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
Daha gelişmiş ayarlar için uygulamamızı çalıştırmadan önce .env dosyasında port-adres ayarları ve Let's Encrypt satırlarını yorumdan çıkarıp kendi adresimize göre yapacağımız değişikliklerle domain ve Let's Encrypt kullanabiliriz. Ayrıca Nginx proxy kullanılmıyorsa doğrudan 80/443 portları ve Let's Encrypt seçeneği kullanılabilir.
# Exposed HTTP port
HTTP_PORT=80
# Exposed HTTPS port
HTTPS_PORT=443
# Public URL for the web service
PUBLIC_URL=https://meet.example.com
# Enable Let's Encrypt certificate generation
ENABLE_LETSENCRYPT=1
# Domain for which to generate the certificate
LETSENCRYPT_DOMAIN=meet.example.com
# E-Mail for receiving important account notifications (mandatory)
LETSENCRYPT_EMAIL=alice@atlanta.net
HTTPS yönlendirmek için yine .env dosyası üzerinden aşağıdaki satırı yorumdan çıkarmak gerekiyor.
ENABLE_HTTP_REDIRECT=1
Aşağıdaki kod ile adresi bilen herkes yetkilendirme aktif olmadığı için oda açıp siteyi-sunucuyu kullanabilir.
docker-compose up -d
-
Kayıt ve Yayın İçin Yapılandırmalar
Kayıt ve yayın için yine .env
dosyasında ENABLE_RECORDING=1
satırını yorumdan çıkarmamız gerekiyor. Kayıt ~/.jitsi-meet-cfg/jibri/recordings/
dizinin altıdan bulunuyor. Terminalden scp -r kullanici@ipadresi:~/.jitsi-meet-cfg/jibri/recordings/ ~/Desktop
komutu ya da FTP aracılığıyla indirebilirsiniz.
# Enable recording
ENABLE_RECORDING=1
Kayıt ve yayın için ayrıca jibri konteynerini çalıştırmamız gerekiyor.
docker-compose -f docker-compose.yml -f jibri.yml up -d
ALSA loopback modülünü ayarlamayı ve kontrol etmeyi unutmamalıyız.
-
Kullanıcı Yetkindirme
Yalnızca kayıtlı kullanıcıların toplantı oluşturabilmesi için .env dosyasındaki aşağıdaki parametreleri yazmamız/düzenlememiz ve kullanıcı kaydetmemiz gerekiyor. ENABLE_GUESTS=1 parametresi ile oda'yı kayıtlı kullanıcılar açabilir ancak kayıtlı olmayan kullanıcılar girebilir.
# Enable authentication
ENABLE_AUTH=1
# Enable guest access
ENABLE_GUESTS=1
# Select authentication type: internal, jwt or ldap
AUTH_TYPE=internal
Kullanıcı kaydını Docker uygulamamızı çalıştırdıktan sonra aşağıdaki komutla Prosody konteynerimiz içerisinde atıyoruz.
docker-compose exec prosody prosodyctl --config /config/prosody.cfg.lua register KullaniciAdi meet.jitsi KullaniciParola
Yetkili kullanıcları ~/.jitsi-meet-cfg/prosody/config/data/meet%2ejitsi/accounts dizini altında bulabilirsiniz.
-
Daha Fazla Özelleştirme
Daha fazla özellştirme ~/.jitsi-meet-cfg/
dizini altında bulunan konfigürasyon dosları ile yapabiliriz. ~/.jitsi-meet-cfg/web/config.js
dosyasında girişte gönünen ad girme gibi ayarlar mevcut.
// Require users to always specify a display name.
requireDisplayName: true,
// Default language for the user interface.
defaultLanguage: 'tr',
~/.jitsi-meet-cfg/web/interface_config.js
dosyasında arayüze ilişkin yapılandırmalar mevcut.
DEFAULT_BACKGROUND: '#005c97',
DISABLE_VIDEO_BACKGROUND: true,
VERTICAL_FILMSTRIP: false,
VIDEO_LAYOUT_FIT: 'both',
RECENT_LIST_ENABLED: false,
Yine arayüze ilişkin imaj dosyaları jitsi/web konteyneri içerinden /usr/share/jitsi-meet/images
klasöründe bulunuyor.
Aşağıdaki komutla konteynerin içerisinde değişilik yapılabilir.
docker-compose exec web /bin/bash
-
Etherpad Kurulum
Oda içerisinde ortak doküman kullanabilmke için .env
dosyasında aşağıdaki satırı yorumdan çıkarmamız gerekiyor.
ETHERPAD_URL_BASE=http://etherpad.meet.jitsi:9001
Kayıt ve Etherpad opsiyonlu kurulum için aşağıdaki komutu çalıştırıyoruz.
docker-compose -f docker-compose.yml -f jibri.yml -f etherpad.yml up -d