BigBlueButton ve GreenLight ile Online Konferans Sistemi Kurulumu

Herkese merhaba, tüm dünyayı saran pandemi ile beraber çalışma hayatı evlere taşındı. Durum böyle olunca “uzaktan eğitim” “uzaktan çalışma” “online konferans” gibi kavramlar hayatın merkezine yerleşti.

Piyasaya baktığımızda bu işi çok iyi yapan bir çok ücretli yazılım mevcut. Bu makalede ücretli yazılımlara alternatif olarak açık kaynak kodlu, temeli BigBlueButton olan GreenLight konferans sistemini sizler ile taştırmak istiyorum.

Açık kaynak kodlu bu tarz projelere baktığımızda genellikle bir yönetim arabirimi olmadığını görüyoruz ( örneğin jitsi ). BigBlueButton bu işi GreenLight ile çözmüş görünüyor. GreenLight aslında BigBlueButton üzerine yerleştirilmiş ( aslında yanına : ) ) web tabanlı grafik arabirim sunuyor ve böylece toplantı odalarını yönetebiliyor, kullanıcı yetkilendirme gibi bir çok yönetimsel işlemleri yapabiliyorsunuz.

Kuruluma geçeden önce minimum sistem gereksinimilerini yazmak istiyorum.

Kurulum

Kuruluma BigBlueButton ile başlıyoruz. Yazının başında da belirttiğim gibi sistem BigBlueButton ile beraber çalışıyor.

BigBlueButton kurulumuna başlamadan önce bazı parametreleri kontrol etmemiz gerekiyor.

Bunlardan ilki dil ve bölgesel ayarlar. Bölgesel ayarların aşağıdaki gibi olması gerekli.

"en_US.UTF-8"

Bunu kontrol etmek için aşağıdaki komutu kullanıyoruz.

cat /etc/default/locale

Bu komutun çıktısı “en_US.UTF-8” olmalı.

Eğer değilse aşağıdaki iki komutu çalıştırmanız gerekiyor. Bunun neticesinde tekrar yukardaki komutu kullanarak durumu kontrol edebilirsiniz. Bu çok önemli yoksa kurulumda hata alırsınız.

$ sudo apt-get install language-pack-en
$ sudo update-locale LANG=en_US.UTF-8

Kurulum öncesi kontrol edilmesi gereken diğer bir nokta IPv6 desteğinin kapalı olması. Aşağıdaki komut sizi bilgilendiriyor.

 ip addr | grep inet6

Eğer çıktı “inet6 ::1/128 scope host” böyle değilse kapatmanız gerekliyor.

Sıra geldi repositoryleri kontrol etmeye.

grep "multiverse" /etc/apt/sources.list

Yukarıdaki komutun çıktısınında aşağıdaki iki repodan birini görmeniz gerekiyor.

deb http://archive.ubuntu.com/ubuntu xenial multiverse 

veya

deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse

Eğer yoksa aşağıdaki komut ile ekleyebilirsiniz.

 echo "deb http://archive.ubuntu.com/ubuntu/ xenial multiverse" | sudo tee -a /etc/apt/sources.list

Aşağıdaki komut ile geliştiricler için bazı komponentler yükleniyor. Opsiyonel bir seçenek yüklemek zorunda değilsiniz.

BigBlueButton, HTML5 arayüzü için mongadb ve nodejs kullanıyor. Yüklemeye başlıyoruz.

1-) wget -qO - https://www.mongodb.org/static/pgp/server-3.4.asc | sudo apt-key add -

2-) echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
apt-get update

mongodb’i kuruyorum

sudo apt-get install -y mongodb-org curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Evet artık BBB ( BigBlueButton ) kurulumu için hazır sayılırız. Aşağıdaki iki komutumuzuda girerek repolarımız ekledik.

wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | sudo apt-key add -
echo "deb https://ubuntu.bigbluebutton.org/xenial-22/ bigbluebutton-xenial main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list
apt-get update

Aşağıdaki iki komut ile BBB kurulumlarını yapıyoruz.

sudo apt-get install bigbluebutton
sudo apt-get install bbb-html5

Kurulum bitti ve her şey sağlıklı çalışıyor gözüküyor.

sudo bbb-conf --check
sudo bbb-conf --status

Şimdi sıra SSL ayarlarına. İlk önce aşağıdaki komut ile sisteme alan adınızı tanıtıyorsunuz.

sudo bbb-conf --setip alan adınız

Sıra geldi Sertifika işlemine ben bu makalede Let’s Encrypt ile ücrestsiz sertifika alacağım. Sırasıyla aşağıdaki komutları giriyorum.

sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096
sudo certbot --webroot -w /var/www/bigbluebutton-default/ -d alanadınız certonly

NOT: Alan adınızın tamamını girmeniz gerekiyor “alanadiniz.com” gibi.

Aşağıdaki komutu yazdığınızda, oluşturulmuş olan sertifika ve keyleri görebiliyorsunuz.

ls /etc/letsencrypt/live/alan adınız/

Sırada sertifikayı sisteme eklemeye geldi. Aşağıdaki dosyayı bir editör ile açın mesela “nano”

nano /etc/nginx/sites-available/bigbluebutton

Aşağıdaki satıları kopyalayıp kendinize göre düzenleyin (“alan adı” kısımlarını) ve açtığınız dosyaya yapıştırın.

listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/letsencrypt/live/alan adınız/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/alan adınız/privkey.pem;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;

Dosyayı düzenlediğizde aşağıdaki gibi gözükecek.

server {
  server_name alan adınız;
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/letsencrypt/live/alan adınız/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/alan adınız/privkey.pem;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;

Sonrasında cron ile zamanlama ayarlıyoruz böylece sertifika otomatik olarak yenilenecek ve sizin bir şey yapmanıza gerek kalmayacak.

HTTPS kullanmaya başladığımız için bir kaç değişiklik yapmaya ihtyiacımız var.

Aşağıdaki dosyayı açıp “http” değiştirip “https” yapıyoruz.

/etc/bigbluebutton/nginx/sip.nginx
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
nano /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties
sudo sed -e 's|http://|https://|g' -i /var/www/bigbluebutton/client/conf/config.xml

ws” leri “wss” yapıyoruz.

nano /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
nano /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml

Evet tüm değişiklikleri yaptık ve BBB resetledik.

sudo bbb-conf --restart

Buraya kadar BBB kurulumu ve ayarlarını tamamladık. Sıra geldi GreenLight Kurulumuna

GreenLight, docker üzerine çalışıyor. Bu yüzden sisteminzde docker’ın yüklü olması gerekiyor.

İlk olarak docker kurulumu yapıyoruz. Aşağıdaki tüm komut bloğunu kopyala-yapıştır yapınız.

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Aşağıdaki komut ile docker kurulumunu yapıyoruz.

sudo apt-get install docker-ce docker-ce-cli containerd.io

Sistem üzerinde iki klasör oluşturuyoryuz.

mkdir ~/greenlight && cd ~/greenlight

Aşağıdaki komut sisteme GreenLight docker image’ını yüklüyor.

docker run --rm bigbluebutton/greenlight:v2 cat ./sample.env > .env

Aşağıdaki komutu kullanarak bir kod üreteceğiz. Sonrasında bu kod greenlight klasörü içersinideki “.env” dosyasına ekleyeceğiz.

docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret

Oluşturmuş olduğum kodu “SECRET_KEY_BASE” kısmına ekliyoruz.

Şimdi sıra BBB için bir secret key oluşturmaya geldi ve yine bunuda .env içerisine ekleyeceğim.

sudo bbb-conf --secret

Ve sonra olarak istenmesi durumunda bir güvenlik önemli olarak “SAFE_HOSTS” kısmına erişim adresinizi tam olarak yazabilirsiniz.

Aşağıdaki komut sistemi test ediyor ve konfig de bir sorun var mı yok mu size bilgi veriyor.

docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
docker run --rm bigbluebutton/greenlight:v2 cat ./greenlight.nginx | sudo tee /etc/bigbluebutton/nginx/greenlight.nginx
sudo systemctl restart nginx

Sonrasında yeniden aşağıdaki dosyayı düzenliyoruz.

nano /etc/nginx/sites-available/bigbluebutton

Aşağıdaki satırı ekliyoruz.

location = / {
  return 307 /b;
}

Aşağıdaki gibi görünecek.

Sıra geldi dockercompose kurulumuna.

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

docker-compose --version
docker run --rm bigbluebutton/greenlight:v2 cat ./docker-compose.yml > docker-compose.yml

Aşağıdaki komut random bir şifre üretip sisteme ekliyor.

export pass=$(openssl rand -hex 8); sed -i 's/POSTGRES_PASSWORD=password/POSTGRES_PASSWORD='$pass'/g' docker-compose.yml;sed -i 's/DB_PASSWORD=password/DB_PASSWORD='$pass'/g' .env

docker’ı ayağa kaldırıyoruz.

docker-compose up -d

Evet kurulum tamalandı. Şimdi giriş için admin yetkilere sahip kullanıcı oluşturacağız

Default olarak kullanıcı adı: admin@example.com şifre: administrator

docker exec greenlight-v2 bundle exec rake admin:create

Sisteme giriş yapmadan önce bir kaç ayarımız kaldı. Birinci aşağıdaki ayarı yaparak sistemin “HTTPS” yönlendirmesini yapmış oluyoruz.

Son olarak sistemin HTML5 olarak açılması için aşağıdaki ayarları yapıyorum

nano /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
attendeesJoinViaHTML5Client=true "false dan true çekiyorum"

moderatorsJoinViaHTML5Client=true "false dan true çekiyorum"

Giriş yapıyoruz.

Yeni bir oda oluşturuyoruz.

Görüldüğü gibi başarılı bir şekilde giriş yaptım.

Makalemizin sonuna geldik. Sizde açık kaynak kodlu,ücretsiz aynı zamanda çok kullanışlı ve geliştirmeye açık bir alternatif arayışınız varsa GreenLight size bir fark yaratabilir.

Keyifli okumalar.

Exit mobile version