بیگ بلو باتن چیست و برای نصب آن چه اقداماتی باید انجام دهیم؟
به طور خلاصه بیگ بلو باتن نرم افزار برگزاری کلاس آنلاین و وبینار است. این نرم افزار متن باز است و به علت محیط ساده و کاربر پسندی که دارد میان کاربران از محبوبیت زیادی برخوردار است. همچنین به علت پشتیبانی از زبان فارسی، برای کاربران فارسی زبان ایده آل است. اگر قصد نصب بیگ بلو باتن ورژن 2.7 را دارید با ما همراه شوید.
نصب بیگ بلو باتن
راهنمای مختصری برای آسانتر شدن نصب بیگ بلو باتن بروی سیستم شما آماده کردهایم.
قبل از آنکه نصب کنید...
در ابتدا پیشنهاد میکنیم پیش از نصب بیگ بلو باتن، یک سرور اختصاصی Ubuntu 20.04 64-bit بدون هیچ برنامهی از قبل نصب شده باشد تهیه کنید. اگر قصد ارتقای ورژن قبلی بیگ بلو باتن (مثلا ورژن 2.4 ) را دارید پیشنهاد میکنیم سروری خالی از برنامه برای بیگ بلو باتن ورژن 2.7 در Ubuntu 20.04 راه بیندازید و پس از نصب، ویدیوهای قبلی را جا به جا کنید. منظور ما از سرور خام این است که هیچ سرور وب و یا اپلیکیشنهای وب (مانند plesk یا webadmin) از قبل نصب نشده باشد.
نصب بیگ بلو باتن بسیار راحت است. برای نصب بیگ بلو باتن در ابتدا باید از لحاظ سخت افزاری آماده باشید. پیش از نصب و را اندازی بیگ بلو باتن نیاز است به نکات زیر دقت کنید.
- سیستمعامل Ubuntuu 20.04 و 64 بیتی با Linux kernel 5.x
- حداقل فضای آزاد 64 گیگ
- نصب آخرین نسخهی Docker
- حداقل 8 هسته پردازنده
- 16 گیگ فضای آزاد (با حافظه swap)
- 500 گیگ فضای آزاد (یا بیشتر از گیگ500) برای ضبط جلسات. 50 گیگ در صورت غیر فعال بودن قابلیت ضبط جلسات.
- تعیین TPC پورتهای 80 و 443
- در دسترس بودن UDP پورتهای 32768-16384
- یک اسم هاست (مانند: bbb.example.com) برای نصب و اجرای گواهی SSL
- آدرسهای IPV4 و IPV6
اگر از بیگ بلو باتن برای بهبود کارهای کوچک در کار خود استفاده میکنید، لازم نیست تمام شرایط را رعایت کنید. میتوانید تجهیزات کمتری استفاده کنید. برای مثال:
- 4 هستهی CPU/ 8 گیگ حافظه
- نصب بر روی کانتینر محلی VM
- 50 گیگ فضای دیسک
- فقط آدرس IPV4
مراحل نصب کانفیگ کردن گواهی SSL در سرور nginx است. اما خرید گواهی SSL چه ضرورتی دارد؟ امروزه تمام مرورگرها موظفاند هنگامی که به کاربر درخواست دسترسی به وبکم یا میکروفن داده میشود از طریق WebRTC انجام شود، گواهی SSL تهیه کنند. اگر تنها با استفاده از آدرس IP خود تلاش کنید تا به سرور بیگ بلو باتن دسترسی پیدا کنید، مرورگرها دسترسی بیگ بلو باتن را به وبکم و میکروفن شما را بلاک میکنند.
چک کردن قبل از نصب
سرور Ubuntu 20.04 64-bit دارید؟ بسیار عالی! قبل از اینکه به بخش نصب برسیم، بگذارید ابتدا کانفیگ کنیم تا مطمئن شویم سرور حداقل شرایط لازم برای نصب بیگ بلو باتن را دارد. بررسیهایی که انجام میدهید، شانس اینکه به مشکل بخورید را به طور چشم گیری کاهش میدهد. اول مکان سرور را بررسی کنید که en_US.UTF-8 باشد. cat /etc/default/locale >$ "LANG="en_US.UTF-8
$ cat/etc/default/locale
"LANG="en_US-8
اگر LANG="en_US.UTF-8" را نمیبینید، فرمانهای زیر را اعمال کنید تا en_US.UTF-8 را در محل مناسی را قرار دهید.
sudo apt-get install -y language-pack-en
sudo update-locale LANG=en_US.UTF-8
سپس یک دور از سیستم خارج شوید و مجدد وارد session در SSH شوید تا کانفیگ (پیکربندی محلی) جلسه دوباره بارگذاری شود. فرمان بالا cat /etc/default/locale را دوباره انجام دهید. تأیید کنید که تک خط LANG="en_US.UTF-8" را میبینید. توجه کنید: اگر خط LC_ALL=en_US.UTF-8 را میبینید، ورودی LC_ALL= آن را حذف کنید. بعد از آن log out کنید و مجدد وارد سیستم شوید. سپس sudo systemctl show-environment را اعمال کنید و در خروجی LANG=en_US.UTF-8 را پیدا کنید.
sudo systemct1 show-environment $
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:usr/bin:/sbin:/bin
اگر این خروجی را ندیدید دستور sudo systemctl set-environment LANG=en_US.UTF-8 و همچنین sudo systemctl show-environment را مجدد اجرا کنید و مطمئن شوید که LANG=en_US.UTF-8 را در خروجی میبینید. پس از آن، با استفاده از فرمان free –h مطمئن شوید که سرور شما حداقل 16 گیگ حافظه دارد. نمونهی خروجی گرفته شده از یکی از سرورهای ما را در کادر زیر مشاهده میکنید.
free -h
total used free shared buff/cache available
Mem: 15G 3.1G 1.0G 305M 11G 12G
swap: 0B 0B 0B
همانطور که میبینید 15 گیگ حافظه است. (از آنجا که سرور 16 گیگ حافظه دارد، 15 گیگ برای نصب مناسب است.) اگر Mem: را در ستون total کمتر از 15 گیگ نمایش داده شود، سروری که دارید فضای کافی ندارد. باید حافظهی سرور را حداقل تا 16 گیگ افزایش دهید. در ادامه چک کنید تا ببینید سیستم عامل سرور 20.04 Ubuntu است.
cat /etc/lsb-release $
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
"DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS
در قسمت بعد، چک کنید که سرور در حال اجرای نسخهی 64-bit Ubuntu 20.04. است.
uname -m $
x86_64
در ادامه باید ببینید سرور از آدرس IPV6 پشتیبانی میکند یا خیر.
ip addr | greg inet6 $
inet6 ::1/128 scope host
...
اگر این خط را kدیدید، بعد از نصب بیگ بلو باتن لازم است کانفیگ را برای FreeSWITCH تغییر دهید و در حالت disable support for IPV6 در بیاورید. در ادامه، چک کنید تا ببینید سرورتان با Linux kernel 5.x اجرا میشود.
uname -r $
5.4.x-xx-generic
در بخش بعدی چک کنید تا ببینید سرورتان حداقل 8 هسته CPU دارد.
greg -c ^processor /proc/cpuinfo $
8
سپس ببینید سرورتان روی پورت 80 و 443 باز است یا خیر:
sudo ufw status $
...
80 ALLOW Anywhere
443 ALLOW Anywhere
...
80(v6) ALLOW Anywhere
443 (v6) ALLOW Anywhere
...
اگر این بخش را پیدا نکردید با استفاده از فرمان زیر میتوانید این بخش را ببینید.
sudo ufw allow 80
dudo ufw allow 443
ممکن است سوال پیش بیاید که چرا تنها از Ubuntu 20.04 64-bit پشتیبانی میشود؟ پاسخ آن این است که به کیفیت بیشتر از کمیت باید توجه کرد. در زمان گذشته نتیجه گرفتیم که بهتر است پروژهی ما به گونهای نصب شود که هیچ اشکالی در آن پیش نیاید تا اینکه ورژنهای مختلف لینوکس را شامل شود ولی هیچ کدام به خوبی کار نکند.
ممکن است یکی از شرایطی که در docker مانع اجرای نسخه 2.7 در برخی محیطهای مجازی شده شود. از اجرای libreoffice در یک محدودهی مشخص اطمینان خواهید داشت. در تلاشیم تا libreoffice را در یک systemd (برای مثال systemd-nspawn) اجرا کنیم.
نصب
برای نصب بیگ بلو باتن از اسکریپت bbb-install.sh استفاده کنید. همانطور که مشاهده میکنید این اسکریپت کمی از ورژنهای قبلی بیگ بلو باتن متفاوت است. اسکریپت جدید در بخشی قرار دارد که ورژن بیگ بلو باتن را قابل تشخیص میکند و بجز آن اسم اسکریپت در تمامی بخشها یکسان است. نگهداری از آن راحتتر میشود.
لینک بالا اطلاعاتی جزئی دربارهی استفاده از اسکریپت میدهد.
توجه کنید اگر قصد استفاده از Greenlight را ندارید میتوانید آن را Uninstall کنید.
بعد از اینکه اسکریپت bbb-install.sh تمام شد، میتوانید وضعیت سرورتان را با bbb-conf --check. وقتی اجرا شد، خروجی مشابه کادر زیر خواهید دید.
sudo bbb-conf --check
root@test27:~# bbb-conf --check
BigBlueButton Server 2.7.0-alpha.1 (114)
Kernel version: 5.4.0-122-generic
Ditribution: Ubuntu 20.04.6 LTS (64-bit)
Memory: 8148 MB
CPU cores: 4
etc/bigbluebutton/nnn-web.properties (override for bbb-web)/
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties (bbb-web)
bigbluebutton.webserverURL: http://test27.bigbluebutton.org
defaultGuestPolicy: ALWAYS_ACCEPT
defaultMeetingLayout: CUSTOM_LAYOUT
etc/nginx/sites-available/bigbluebutton (nginx)/
server_name: test27.bigbluebutton.org
:port: 80, [::]:80127.0.0.1:82 http2 proxy_protocol, [::1]
opt/freeswitch/etc/freeswitch/vars.xml (FreeSWITCH)/
local_ip_v4: 143.198.37.212
external_rtp_ip: 143.198.37.212
external_sip_ip: 143.198.37.212
/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
ext-rtp-ip: $${local_ip_v4}
ext-sip-ip: $${local_ip_v4}
ws-binding: 143.198.37.212:5066
wss-binding: 143.198.37.212:7443
UDP port ranges
FreeSWITCH: 16384-24576
kurento: 24577-32768
bbb-webrtc-sfu: 24577-32768
bbb-webrtc-recorder: 24577-32768
/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
playback_host: test27.bigbluebutton.org
playback_protocol: https
ffmpeg: 4.2.7-0ubuntu0.1
usr/share/bigbluebutton/nginx/sip.nginx (sip.nginx)/
proxy_pass: 143.198.37.212
protocol: http
/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml/ (bbb-webrtc-sfu)
/etc/bigbluebutton/bbb-webrtc-sfu/production.yml (bbb-webrtc-sfu - override)
mediasoup.webrtc.*.announcedIp: 143.198.37.212
mediasoup.plainRtp.*.announcedIp: 143.198.37.212
kurento.ip: 143.198.37.212
kurento.url: ws://127.0.0.1:8888/kurento
freeswitch.sip_ip: 143.198.37.212
recordingAdapter: Kurento recordScreenSharing: true
recordWebcams: true
codec_video_main: VP8
codec_video_content: VP8
/etc/bbb-webrtc-recorder/bbb-webrtc-recorder.yml (bbb-webrtc-recorder)
/etc/bigbluebutton/bbb-webrtc-recorder.yml (bbb-webrtc-recorder - override)
debug: false
recorder.directory: /var/lib/bbb-webrtc-recorder
usr/share/meteor/bundle/programs/server/assets/app/config/settin/
gs.yml (HTML5 client)
/etc/bigbluebutton/bbb-html5.yml (HTML5 client config override)
build: 13
kurentoUrl: wss://test27.bigbluebutton.org/bbb-webrtc-sfu defaultFullAudioBridge: fullaudio
defaultListenOnlyBridge: fullaudio
sipjsHackViaWs: true
# Potential problems described below
هر خروجی که potential problems را دارد احتمالا به ارور کانفیگ یا ارور نصب مربوط میشود.
همچنین میتوانید از sudo bbb-conf --status استفاده کنید تا چک کنید ببینید تمامی عملیات در حال انجام است.
$ sudo bbb-conf --status
nginx —————————————————► [✔ - active]
freeswitch ————————————► [✔ - active]
redis-server ——————————► [✔ - active]
bbb-apps-akka —————————► [✔ - active]
bbb-fsesl-akka ————————► [✔ - active]
mongod ————————————————► [✔ - active]
bbb-html5 —————————————► [✔ - active]
bbb-html5-backend@1 ———► [✔ - active]
bbb-html5-backend@2 ———► [✔ - active]
bbb-html5-frontend@1 ——► [✔ - active]
bbb-html5-frontend@2 ——► [✔ - active]
bbb-webrtc-sfu ————————► [✔ - active]
bbb-webrtc-recorder ———► [✔ - active]
kurento-media-server ——► [✔ - active]
etherpad ——————————————► [✔ - active]
bbb-web ———————————————► [✔ - active]
bbb-pads ——————————————► [✔ - active]
bbb-export-annotations ► [✔ - active]
bbb-rap-caption-inbox —► [✔ - active]
bbb-rap-resque-worker —► [✔ - active]
bbb-rap-starter ———————► [✔ - active]
همچنین با استفاده از dpk -1 | grep bbb- میتوانید تمامی پکیجهای اصلی بیگ بلو باتن را به صورت لیست مشاهده کنید. (اعداد ورژن شما ممکن است کمی متفاوت باشد)
# dpkg -l | grep bbb-
ii bbb-apps-akka 1:2.7-10 all BigBlueButton Apps (Akka)
ii bbb-config 1:2.7-14 amd64 BigBlueButton configuration utilities
ii bbb-etherpad 1:2.7-4 amd64 The EtherPad Lite components for BigBlueButton
ii bbb-export-annotations 1:2.7-7 amd64 BigBlueButton Export Annotations
ii bbb-freeswitch-core 2:2.7-3 amd64 BigBlueButton build of FreeSWITCH
ii bbb-freeswitch-sounds 1:2.7-3 amd64 FreeSWITCH Sounds
ii bbb-fsesl-akka 1:2.7-7 all BigBlueButton FS-ESL (Akka)
ii bbb-html5 1:2.7-13 amd64 The HTML5 components for BigBlueButton
ii bbb-html5-nodejs 1:2.7-4 amd64 Include a specific NodeJS version for bbb-html5
ii bbb-learning-dashboard 1:2.7-5 amd64 BigBlueButton bbb-learning-dashboard
ii bbb-libreoffice-docker 1:2.7-2 amd64 BigBlueButton setup for LibreOffice running in docker
ii bbb-mkclean 1:2.7-3 amd64 Clean and optimize Matroska and WebM files
ii bbb-pads 1:2.7-6 amd64 BigBlueButton Pads
ii bbb-playback 1:2.7-4 amd64 BigBlueButton playback
ii bbb-playback-presentation 1:2.7-3 amd64 BigBluebutton playback of presentation
ii bbb-record-core 1:2.7-4 amd64 BigBlueButton record and playback
ii bbb-web 1:2.7-8 amd64 BigBlueButton API
ii bbb-webrtc-recorder 1:2.7-2 amd64 BigBlueButton WebRTC Recorder
ii bbb-webrtc-sfu 1:2.7-9 amd64 BigBlueButton WebRTC SFU
با نصب Greenlight (که همان بخش g- است)میتوانید https://<hostname>/b را در مرورگر باز کنید. (<hostname> همان بخشی است که در bb-install.sh مشخص کردهاید. اکانت و اتاق بسازید و به آن بپیوندید.
قابلیت ادغام بیگ بلو باتن با فراهم سازی یکپارچه سازی آدرس سرور و رمز اشتراکی وجود دارد. با استفاده از bbb-conf --secret میتوانید اطلاعات را نمایش دهید.
sudo bbb-conf --secret $
/URL: https://bbb.example.com/bigbluebutton
Secret: 330a8b08c3b4c61533e1d0c334
:Link to the API-Mate
https://mconf.github.io/api- mate/#server=https://bbb.example.com/bigbluebutton/&sharedSecret=330a8b08c3b4c61533e1d0c334
لینکی که مربوط به API-Mate است صفحهای در https://mconf.github.io/api-mate/ باز میکند و با استفاده از آن امکان تماس Valid API به سرور خود خواهید داشت. همین موضوع تست کردن را بدون نیاز به مرحله پیشین مانند Greenlight آسان میکند.
کانفیگ فایروال (در صورت نیاز)
فایروال مانعی میان شما و کاربران است؟ در این صورت به بخش پیکربندی فایروال مراجعه کنید.
ارتقای نسخه ی 2.7 بیگ بلو باتن
برای ارتقای بیگ بلو باتن تنها کافیست اسکریپت bbb-install.sh را مجدد اجرا کنید. با اینکار آخرین ورژن عرضه شدهی بیگ بلو باتن 2.7 دانلود و نصب میشود.
ارتقای نسخه ی بیگ بلو باتن از 2.5 یا 2.6
ارتقای بیگ بلو باتن با چند مرحله امکان پذیر است:
در مرحلهی اول از طریق sudo apt purge bbb-demo ببینید که bbb-demo را نصب نکردهاید.
سپس اسکریپت bbb-install.sh را اجرا کنید. به این ترتیب آخرین آخرین ورژن 2.7 بر روی نسخهی 2.5 نصب میشود.
بخش «چه چیزی در ورژن 2.7 جدید است؟» و بخصوص بخش تغییرات را مطالعه کنید.
ارتقای بیگ بلو باتن از نسخه ی 2.4
اگر میخواهید بیگ بلو باتن ورژن 2.4 یا 2.3 را به روز رسانی کنید بهتر است ابتدا یک جدید سرور 20.04 Ubuntu را همراه بیگ بلو باتن 2.7 را راه اندازی کنید و سپس ویدیوهای ضبط شدهی قبلی را از سرور قبلی انتقال دهید.
سرور را ری استارت کنید
میتوانید از فرمانهای زیر برای ری استارت کردن و چک کردن سرور بیگ بلو باتن استفاده کنید.
sudo bbb-conf --restart
sudo bbb-conf --check
bbb-conf --check تمام فایلهای پردازشی را برای خطا اسکن میکند. برای هر خروجی که Potential problems را به همراه دارد، امکان خطا در نصب و یا کانفیگ کردن وجود دارد. در بیشتر مواقع پیشنهاداتی برای حل اسن مشکل به شما داده میشود.
اگر خطاهای دیگری میبینید به بخش عیب یابی در نصب مراجعه کنید.
اقدامات پس از نصب
اگر سرور مخصوص تولید است. باید اقدامات زیر را انجام دهید:
- از سیستم خود حفاظت کنید -- دسترسی به برخی پورتها را محدود کنید.
- سرور را کانفیگ کنید تا پشت فایروال کار کند. ( در صورتی نصب بر روی سروری باشد که پشت فایروال یا بر روی سروی که آدرس آی پی عمومی/خصوصی است.)
- حذف Greenlight (اگر از قبل نصب شده است و دیگر نیازی به آن نیست)
- نصب سرور TURN (اگر سرور بر روی اینترنت است و کاربران از طریق فایروالهای محدود شده به آن دسترسی دارند)
- کانفیگ HTTPS را تست کنید. یکی از وبسایتهایی که میتوانید با استفاده از آن چند تست خودکار انجام دهید. تنها کافیست اسم هاست سرور را وراد کنید و اگر میخواهید نتایج محرمانه باقی بماند، بخش «نتایج را نشان نده» را انتخاب کنید و ثبت کنید.
برخی سرورهایی برای دسترسی عموم و برای تست کردن ارائه شده است:
- https://demo.bigbluebutton.org دریایی از سرورهای بیگ بلو باتن به همراه Greenlight است.
- https://test27.bigbluebutton.org ساختار اصلی بیگ بلو باتن 2.7 را اجرا میکند. معمولا چند روز از reprosity branch عقب است. (v2.7.x-release)
یزای اینکه در مورد ادغام بیگ بلو باتن با اپلیکیشن بیشتر یاد بگیرید به بخش BigBlueButton API documentation مراجعه کنید. برای تماشای ویدیوهای بیگ بلو باتن کلاینت HTML5 به https://bigbluebutton.org/html5 مراجعه کنید.
راهکارهای دیگر نصب کردن
Ansible (انسیبل)
اگر به فکر انتشار و نصب بیگ بلو باتن در سطح گسترده هستید و میخواهید از Scalelite استفاده کنید، مدیریت سرورها با استفاده از ابزارهایی مانند Ansible بهتر انجام میشود. دلایلی که باید با این مرحله نصب پیش بروید عبارتاند از:
- شخصی سازی آسان: هر بار که به طور خودکار آپدیت میکنید، کانفیگهای شخصی شما جایگزین میشود.
- همگام سازی میان تمامی دستگاهها: ورژن یکسان بر روی هر سرور بیگ بلو باتن نصب میشود.
- حذف خطای انسانی در نصب: استفاده از bbb-install.sh و یا روشهای گام به گام در معرض خطای انسانی قرار میگیرند.
- اتوماتیک شدن: با اتومات کردن فرآیند نصب و اجرا، در عیب یابی و کانفیگ کردن و هدر دادن زمان صرفه جویی میشود.
شخصی سازی
پیج شخصی سازی راببینید تا کارهایی انجام دهید تا بیگ بلو باتن را با محیط اطراف تطبیق دهید و یا پس از نصب ویژگیهای اختیاری پس از نصب را فعال کنید. برای مثال:
- فرمتهای دیگر پردازش کنندهی جلسات ویدیویی را نصب کنید.
- خروجی ویدیو با فرمت mp4(H.264) را فعال کنید.
عیب یابی
Package locales-all در دسترس نیست.
پکیج bbb-liberoffice باید تصویر docker برای libreoffice بسازید. اگر هنگام نصب در اینترنتی که در فایروال قرار دارد با خطای زیر مواجه شدید:
Package locales-all is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'locales-all' has no installation candidate
E: Unable to locate package libxt6
E: Unable to locate package libxrender1
The command '/bin/sh -c apt -y install locales-all fontconfig libxt6 libxrender1' returned a non-zero code: 100 dpkg: error processing package bbb-libreoffice-docker (--configure): installed bbb-libreoffice-docker package post-installation script subprocess returned error exit status 100
Ubuntu 20.04 از systemd-resolved استفاده میکند که ذخیره سازی در حافظهی پنهان را برطرف میکند و آن را در etc/resolv.conf/ ثبت مینماید. اگر خطای بالا را دیدید و اسم سرور دارید مانند 10.11.12.13 به resolv.conf آن را اضافه کنید.
echo "nameserver 10.11.12.13" > /etc/resolv.conf