Kendi video konferans sunucunu kurmak

Ahh korona. Bitirdin bitirdin… Hadi bit artık kurtulalım…

Koronanın sokaklara taşınması ile beraber biz de evlere hapsolunca haliyle video konferans hayatımızın büyük bir parçası oldu. Bu aşamada Zoom kullanıyoruz ve gerçekten muhteşem bir ürün. Bir video konferansın en can alıcı noktası olan “tek tık ile konferansa” katılma özelliği gerçekten muhteşem.

Tabi zoom ücretli; 40 dakikadan sonra eğer 3 kişiden fazlaysanız bağlantınızı koparıyor (haklı olarak) ve sizi ücretli kısma yönlendiriyor. Bu aşamada ücretsiz olan ve oyun oynayanlar tarafından kullanılan Discord’u denedik. Sürekli sesli konuşma sağlayabiliyor ama video kalitesi düşük. Yüksek kalite video için bedel talep ediyor. Zoom’u öne çıkaran en güzel özelliklerden birisi de jilet gibi ekran paylaşımı.

Şu mu bu mu derken acaba bu konuda da açık kaynak kodlu bir yazılım varmı diye arayışa girdim ve Jitsi ile karşılaştım. Jitsi açık kaynak kodlu bir video konferans uygulaması ve kendi sunucularınıza kurup istediğiniz gibi ücretsiz kullanabiliyorsunuz. Havalı değil mi? Bence de 🙂

O zaman korona günleri hatrına; nasıl kendi video konferans sunucunuzu kurabilirsiniz buyrun adım adım başlayalım.

Öncelikle belirteyim; bu işi yapmak için hali hazırda bir sunucuya ihtiyacınız var. Pek çok teknoloji ve enerji şirketinin artık bulutta sunucusu olduğu için bunu ihtiyaç olarak düşünmüyorum. Bunun haricinde linux komut satırına biraz aşina olmanız gerekli keza kurulumu SSH üzerinden yapacağız.

Sunucunuz yoksa OVH’dan aylık 3USD’ye sunucu kiralayabilirsiniz. https://us.ovhcloud.com/products/vps

Sunucunuzu kurarken işletim sistemi olan Debian seçerseniz aşağıdaki akışta problem yaşamazsınız.

Şimdi başlayalım kuruluma. Kullanacağımız yazılım Jitsi. Kodlarını merak edenler https://github.com/jitsi/jitsi-meet adresinden inceleyebilir.

Sunucunuza SSH ile bağlandığınızı varsayarak devam ediyorum.

Öncelikle /etc/hosts dosyamızı düzenliyoruz. İçerisine kullanacağımız alt alan adını localhost ile aynı IP adresinde eşliyoruz.

127.0.0.1 localhost meet.solarian.com.tr

Bu yazılımın sunucu içerisinde kendisine hızlıca ulaşabilmesi için gerekli. Şimdi ikinci kısım olan DNS yönlendirmelerini tanımlayalım. Ben DNS için Cloudflare kullanıyorum. Önemli olan bir A kaydı atamak.

DNS Sunucunuza video konferans yapacağınız adresi A kaydı olarak atayın.

Tabi bu arada direk alan adının hazırlanmasından bahsettim. IP adresi üzerinden de çalışabilir ama telefondan vs kimse bağlanamayacaktır. Sistemin doğru çalışması için Let’s Encrypt’den alınan bir sertifika gerekli. Sertifika için de alan adına ihtiyacınız var. Eğer lokal bir sunucuda çalıştırmayacaksanız muhakkak bir alan adı kullanın yoksa sistem ileride çalışmaz.

Şimdi Debian’a SSH ile girelim ve Jitsu’nun repolarını ekleyelim.

Not: Debian değil Ubuntu vs bir distro kullanıyorsanız her komutun başına ‘sudo’ gelmesi gerekebilir. Neden çalışmıyor demeyin 🙂


echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo apt-get install apt-transport-https
sudo apt update
sudo apt upgrade

Bu aşamada repolarımızı ekledik ve yerel kütüklerimizi güncelleyip yazılımları güncelledik. Şuanda kuruluma devam edebileceğimiz bir altyapımız var. Jitsi otomatik olarak bir http sunucusu varmı diye kurulum aşamasında arıyor ve yoksa Nginx’i kuruyor. Eğer sıfır bir kurulum gerçekleştiriyorsanız aşağıdaki komutlar Jitsi’yi kuracaktır. Eğer zaten mevcutta 443 portunda bir nginx sunucunuz varsa (benim gibi) bir alt kod kutucuna geçin.

Nginx’i olmayanlar veya 443 https portuna bind etmeyenler:


# Nginx 443 portuna bind etmiyorsa (ya da önceden kurulu Nginx yoksa)
apt -y install jitsi-meet

Eğer mevcutta Nginx 443 SSL portuna bind ediyorsa aşağıdaki:


# Zaten mevcutta bir Nginx web sunucunuz varsa ve 443 ssl'e bind ediyorsa
apt install --no-install-recommends jitsi-meet

Kurulum aşamasında Jitsi sizden alan adını isteyecek.

VMWare Fusion üzerinde Pardus içinde Jitsi. Yerli ve milli 🙂

Yukarıdaki ekran görüntüsünde gördüğünüz gibi bir arabirimde alan adını sizden isteyecek. Hatasız bir şekilde girin.

Bu aşamada Jitsi kuruldu ve çalışmaya hazır. Eğer tüm kurulum süreçlerini hatasız atlattıysanız -ki pek hata yapılacak bir konu yok- sunucunuz için SSL sertifikasına ihtiyacınız var.

Eğer 0’dan direkt Jitsi kurulumu yaptıysanız aşağıdaki kodu çalıştırarak Let’s encrypt sertifikanızı alın.


/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Eğer benim gibi zaten mevcut bir Let’s Encrypt altyapınız varsa o zaman kendi metodolojinizi kullanın. Sadece minik bir not; Let’s encrypt en sonda 1 mi 2 mi diye soracak. Yazılım zaten kendisi SSL’e yönlendirmiş durumda o sebeple 1’i seçip “No further changes” seçeneğini seçin. Let’s encrypt ssl yönlendirmesini kendisi yapmasın.

Şu aşamada kendi video konferans sisteminizie sahipsiniz.

Bir diğer not: Eğer 1’den fazla katılımcı katılacaksa 10000UDP portunun açık olduğundan emin olun. Portu açmak için


iptables -A INPUT -p udp -m udp --dport 10000 -j ACCEPT -m comment --comment "Jitsi"

Bizimkinde bir deneme yapalım. https://meet.solarian.com.tr

Ben cep telefonundan diğerleri PC’den 😀

Artık doyasıya kullanabileceğiniz bir video konferans sisteminiz var.

Bu uygulama sadece PC’de browser üzerinden çalışan bir uygulama değil. Aynı zamanda Android, iPhone vb cihazlarda da uygulamaları mevcut. Telefonunuza yükleyip kolayca bağlanabilirsiniz.

Korona karantinasından selamlar,

Orçun Başlak


Yazılar eğer ilginizi çekiyorsa aşağıya eposta adresinizi yazarak abone olabilirsiniz

Her yeni makale yayınlandığında size e-posta gönderilecektir.


Yorumlar

“Kendi video konferans sunucunu kurmak” için 10 yanıt

  1. Bir Pardus görüyorum orada sanki, evet evet bir Pardus gördüm.

    1. Evet test ortamı pardus 🙂

  2. Emre Karaoglu avatarı
    Emre Karaoglu

    Tebrik ve teşekkür ederim. Çok güzel bir belge olmuş. Elinizde performans hakkında bir veri var mı peki? Örneğin OVH’den alacağımız 3 USD’lik bir VPS ile kaç kişi toplantı yapabilir?
    Teşekkürler ve iyi çalışmalar

    1. Merhaba,

      Teşekkür ederim. Eğer Jitsi’ye ilave olarak JibRi kurup kayıt yapmayacaksanız ihtiyacınız olan sadece bant genişliği. Eğer kayıt yapmak isterseniz o zaman CPU/Ram vb. pek çok etmen işin içine giriyor.
      Kayıt yapmadığınızı varsayarsak 5 kişi için 720p kalitesinde bir videokonferans için yaklaşık 20mbit giriş ve 20mbit çıkış bir bant genişliğine ihtiyacınız var. OVH VPS SSD’de izin verilen bant genişliği 250mbit. 250mbit çift taraflı mı yoksa aynı anda toplam mı bilmiyorum. Bu durumda teorik olarak toplam bant genişliği ise 250/40 = 6,25 ~= 6 grup x 5 kişi’den 30 kişi, 250mbit hem upload hem download için simetrik ise 12 grup x 5 kişi = 60 kişi’ye kadar çıkılabilir. Tabi bunlar teorik değerler. Video kalitesi 720p’den düştüğü anda kişi sayısı artar, 1080p’ye çıkarırsanız azalır vb.

      Selamlar,

      1. Emre Karaoglu avatarı
        Emre Karaoglu

        Çok teşekkürler. Ben de bir ekleme yapayım. Şöyle bir link buldum,
        https://community.jitsi.org/t/recommended-server-specs-for-2020/32041/12
        Burada da, tecrübeye dayalı bazı sonuçlar da var. 🙂

        1. Paylasim icin tesekkurler. Jitsi calisirken htop ile duzenli olarak sistemi izliyorum ama cpu kullaniminda ciddi bir sorun yasamadim. Gerci bir onceki yorumda yazdigim kadar buyuk bir islem de yapmadim. 3 oda yaklasik 12 kisi kullaniyorduk; 4-core cpu’da %25’ler seviyesindeydi (%100 out of %400 linux) Bence deneyip gormek lazim.

          Burada asil dikkat edilmesi gereken nokta client side decoding. Yorumda chromebook kullanan dustu yazmis ki x264 decode etmek icin pek iyi bir cpu degil. Gunumuz pc’lerinde bu sorun yasanmayacaktir diye dusunuyorum ama yine de deneyip gormekte fayda var. Vps’i bir aylik alir denersiniz. 😉

  3. Mehmet avatarı

    Selamlar, yazınız güzel ellerinize sağlık.
    Bu yazıya jibri kurulumu + youtube canlı yayın yapabilmek için gerekli eklemeleri de anlatırsanız dadından yenmez 🙂

    1. Üzerinden epey zaman geçmiş ben de unuttum doğrusu 🙂 Jibri+Youtube konusunu daha önce yapmıştım ama kendi cihazımda vmware ile Jibri çalıştırmam gerekmişti. Aynı sunucuda chromium kullandığı için epey kaynak tüketiyordu. Bir ara vakit bulabilirsem ek olarak yazarım.

      1. Mehmet avatarı

        youtube konusu olursa çok güzel olur. Gördüğüm kadarı ile internet dünyasında temiz bilgi bulmak çok zor. Sizin kurulumu inceledim 10000/udp portunun neden açılması gerektiği # Zaten mevcutta bir Nginx web sunucunuz varsa ve 443 ssl’e bind ediyorsa
        apt install –no-install-recommends jitsi-meet bu bilgiler çok güzel bilgiler.
        Sabırsızlıkla youtube’ a canlı yayın konusu ile ilgili yazınızı bekliyor olacağım. Bir sorum olacak jibri yi jitsinin kurulduğu sunucuya kurabiliyor muyuz yoksa onun içinde ayrı bir sunucu mu gerekiyor ?

        1. Kurabiliyor olmamiz gerekiyor. Neden virtual makine kullanmistim hatirlamiyorum acikcasi. Lakin Jibri kendi icinde chrome acip goruntuyu cozumluyor o sebeple epey sistem kaynagi kullanan bir seydi.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir