BigBlueButton یک نرم افزار open source (منبع باز) است که برای برگزاری کلاس و جلسات آنلاین در توزیعهای مختلف لینوکس استفاده میشود. برای نصب این نرم افزار بر روی یک سرور اختصاصی لینوکس، میتوانید از ابزارهایی که کار نصب را آسان میکنند استفاده کنید.
در این مقاله، میخواهیم نحوه نصب BigBlueButton ورژن 2.6 را به شما نشان دهیم. با مبین هاست همراه باشید…
چیزهایی که باید قبل از نصب BigBlueButton بدانید
بهتر است نرم افزار BigBlueButton را بر روی یک سرور مجازی 64 بیتی “اختصاصی” و “تمیز” اوبونتو 20.04 نصب کنید. منظور از سرور “تمیز”، سروری است که هیچ نرم افزار وب سروری (مانند آپاچی،وب سرور nginx و غیره) یا برنامههای کاربردی وب (مانند plesk و غیره) که به پورت 80/443 متصل هستند، بر روی آن نصب نشده است. منظور از “اختصاصی” نیز این است که از سرور برای هیچ چیز دیگری به جز BigBlueButton (و برنامههای مربوط به آن مانند Greenlight و غیره) استفاده نخواهد شد.
اگر در حال حاضر نسخههای قبلی این نرم افزار مانند 2.4 را بر روی سیستم خود دارید و میخواهید آن را به جدیدترین نسخه ارتقا دهید، توصیه میکنیم که قبل از ارتقا، یک سرور اختصاصی اوبونتو 20.04 را راهاندازی کرده و سپس، دادههای رکوردشده خود را بر روی سرور منتقل کنید. BigBlueButton از ارتقا سرور 2.5 به 2.6 پشتیبانی میکند.
موارد مورد نیاز سرور
حداقل الزامات برای نصب bbb عبارتند از:
- سیستم عامل 64 بیتی اوبونتو نسخه 20.04 با هسته لینوکس 5.x؛
- نصب آخرین نسخه docker؛
- 16 گیگابایت حافظه با قابلیت تعویض؛
- CPU 8 هستهای، با عملکرد تک-نخی بالا؛
- 500 گیگابایت فضای دیسک خالی برای رکورد کردن. اگر ریکورد جلسات در سرور غیرفعال باشد، به 50 گیگابایت نیاز دارید؛
- پورتهای TCP قابل دسترسی 80 و 440؛
- پورتهای UDP قابل دسترسی 16384 – 32768؛
- پهنای باند (متقارن) حداقل 250 مگابایت بر ثانیه؛
- پورتهای TCP 80 و 440 که توسط پروکسی معکوس یا وبسرور دیگری استفاده نمیشوند؛
- آدرسهای IPV4 و IPV6.
اگر میخواهید نصب BigBlueButton را در سرور مجازی ایران و بر روی یک ماشین مجازی در فضای ابری انجام دهید، به شما توصیه میکنیم که از ماشینی استفاده کنید که CPU اختصاصی دارد.
البته، اگر میخواهید پس از نصب bbb از آن برای توسعه محلی کسب و کار جدید و نوپای خود استفاده کنید، میتوانید به جای ملزومات بالا، از موارد زیر استفاده کنید و پس از گسترش کسب و کارتان، به تدریج به پیکربندی سیستمتان اضافه کنید:
- CPU 4 هستهای با 8 گیگابایت حافظه؛
- انجام نصب بر روی یک ماشین مجازی محلی؛
- 50 گیگابایت فضای خالی؛
- فقط آدرس IPV4.
یادتان باشد در هر محیطی که عملیات راهاندازی را اجرا میکنید، مراحل راهاندازی شامل پیکربندی گواهی SSL در سرور nginx است. دلیل این پیکربندی این است که در حال حاضر تمامی مرورگرها، زمانی که یک صفحه از طریق ارتباط بلادرنگ وب (WebRTC) درخواست دسترسی به وبکم یا میکروفون کاربر را میدهد، به گواهی SSL معتبر از وبسرور نیاز دارند. در صورتی که تلاش کنید فقط با یک آدرس IP به یک وبسرور BigBlueButton دسترسی داشته باشید، مرورگر به صورت خودکار، دسترسی مشتری BigBlueButton را از وبکم یا میکروفون شما مسدود میکند.
بررسیهای قبل از نصب BigBlueButton
قبل ازاینکه به سراغ نصب BigBlueButton برویم، اجازه دهید که برای محکمکاری هم که شده، چند بررسی سریع داشته باشیم تا مطمئن شویم که تمام موارد لازم را در اختیار داریم. با انجام این بررسیها، خیالمان راحت است که احتمال بروز مشکل در زمان نصب را به حداقل میرسانیم.
در قدم اول، باید با اجرای قطعه کد زیر، بررسی کنید که محل سرور en_US.UTF-8 است:
$ cat /etc/default/locale LANG="en_US.UTF-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
در قدم بعدی، باید از سیستم خارج شده و دوباره وارد جلسه SSH شوید تا پیکربندی محلی برای جلسه شما مجددا بارگیری شود. در ادامه، دستور cat /etc/default/locale را دوباره اجرا کنید و بررسی کنید که آیا عبارت LANG=”en_US.UTF-8″ ظاهر میشود یا خیر.
توجه: اگر عبارت LC_ALL=en_US.UTF-8 را در خروجی مشاهده کردید، ورودی LC_ALL را از /etc/default/locale حذف کرده و از سیستم خارج شده و یکبار دیگر وارد شوید.
سپس، کد sudo systemctl show-environment را اجرا کرده و مطمئن شوید که عبارت LANG=en_US.UTF-8 در خروجی ظاهر میشود.
$ sudo systemctl 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
در نمونه بالا، مشاهده میکنید که در ستون total، فضای خالی سرور 15 گیگابایت است. این مقدار حافظه برای نصب بیگ بلو باتن کافی نیست و حافظه سرور باید به حداقل 16 گیگابایت برسد. با این حال، اگر در یک محیط در حال توسعه کار میکنید، 8 گیگابایت برای شما کافی است.
در قدم بعدی، باید با کد دستوری زیر، بررسی کنید که سرور شما دارای سیستم عامل اوبونتو 20.04 است:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION=”Ubuntu 20.04.4 LTS”
سپس، باید بررسی کنید که نسخه سیستم عامل اوبونتو، 64 بیتی است یا خیر:
$ uname -m
x86_64
سپس، با استفاده از کد دستوری زیر، بررسی کنید که سرور شما از آدرسهای IPV6 پشتیبانی میکند:
$ ip addr | grep inet6
inet6:: 1/128 scope host
…
اگر پس از اجرای کد بالا، عبارت inet6:: 1/128 scope host را مشاهده نمیکنید، باید پس از نصب بیگ بلو باتن، پیکربندی FreeSWITCH را تغییر دهید تا پشتیبانی از IPV6 غیرفعال شود.
در قدم بعدی، با کد زیر، بررسی میکنید که سرور شما هسته لینوکس 5.x را اجرا میکند یا خیر:
$ uname -r
5.4.x-xx-generic
سپس، باید بررسی کنید که CPU سرور شما حداقل 8 هسته داشته باشد:
$ grep -c ^processor /proc/cpuinfo
8
حال شاید برای شما سوال پیش بیاید که چرا BigBlueButton فقط از اوبونتو 20.04 نسخه 64 بیتی پشتیبانی میکند؟ جواب بسیار ساده است. این توزیع از لینوکس واقعا خوب کار میکند و نصب قوی، آزمایش شده و مستندی دارد.
نصب BigBlueButton
برای نصب BigBlueButton میتوانید از اسکریپت bbb-install-2.6.sh استفاده کنید.
با کلیک بر روی لینک بالا، به صفحه حاوی اسکریپت میروید و میتوانید توضیحات کد را (در ابتدای توضیحات، علامت # قرار دارد) مشاهده کنید. این اسکریپت، آخرین نسخه BigBlueButton 2.6 را با استفاده از -v focal-260 نصب میکند و یا در صورت نصب بودن این برنامه، آن را ارتقا میدهد. همچنین میتواند Greenlight (-g) و یا firewall (-w) را نصب کند. توجه داشته باشید که پس از BigBlueButton 2.6 شما نمیتوانید از دموهای API استفاده کنید. در عوض توصیه میکنیم به جای آن، از Greenlight یا API MATE استفاده کنید.
wget -qO- https: //ubuntu.bigbluebutton.org/bbb-install-2.6.sh | bash -s -- -v focal-260 -s bbb.example.com -e notice@example.com -g -w
پس از اینکه اجرای اسکریپت bbb-install-2.6.sh تمام شد، میتوانید با استفاده از دستور bbb-conf –check وضعیت سرور خود را بررسی کنید. پس از اجرای این دستور، باید خروجی زیر را مشاهده کنید:
$ sudo bbb-conf --check BigBlueButton Server 2.6.0-alpha.1 (54) Kernel version: 5.4.0-107-generic Distribution: Ubuntu 20.04.4 LTS (64-bit) Memory: 16393 MB CPU cores: 2 /etc/bigbluebutton/bbb-web.properties (override for bbb-web) /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties (bbb-web) bigbluebutton.web.serverURL: https://bbb.example.com defaultGuestPolicy: ALWAYS_ACCEPT svgImagesRequired: true defaultMeetingLayout: CUSTOM_LAYOUT /etc/nginx/sites-available/bigbluebutton (nginx) server_name: bbb.example.com port: 80, [::]:80 port: 443 ssl /opt/freeswitch/etc/freeswitch/vars.xml (FreeSWITCH) local_ip_v4: 133.203.31.212 external_rtp_ip: 133.203.31.212 external_sip_ip: 133.203.31.212 /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH) ext-rtp-ip: $${local_ip_v4} ext-sip-ip: $${local_ip_v4} ws-binding: 133.203.31.212:5066 wss-binding: 133.203.31.212:7443 /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback) playback_host: bbb.example.com playback_protocol: https ffmpeg: 4.2.7-0ubuntu0.1 /usr/share/bigbluebutton/nginx/sip.nginx (sip.nginx) proxy_pass: 133.203.31.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: 133.203.31.212 mediasoup.plainRtp.*.announcedIp: 133.203.31.212 kurento.ip: 133.203.31.212 kurento.url: ws://127.0.0.1:8888/kurento freeswitch.sip_ip: 133.203.31.212 recordScreenSharing: true recordWebcams: true codec_video_main: VP8 codec_video_content: VP8 /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml (HTML5 client) /etc/bigbluebutton/bbb-html5.yml (HTML5 client config override) build: 8 kurentoUrl: wss://bbb.example.com/bbb-webrtc-sfu defaultFullAudioBridge: sipjs defaultListenOnlyBridge: fullaudio sipjsHackViaWs: true /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml (STUN Server) stun: stun.l.google.com:19302 # Potential problems described below
اگر خطای پیکربندی یا خطای نصب BigBlueButton رخ دهد، در خط آخر (Potential problems) پیامی برای شما نوشته میشود. این پیامها حاوی توصیههایی درباره نحوه حل مشکل هستند.
همچنین، میتوانید با استفاده از دستور sudo bbb-conf –status بررسی کنید که تمام فرایندهای BigBlueButton شروع شده و به درستی در حال اجرا هستند یا خیر:
$ 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-webrtc-sfu ————————► [✔ – active]
kurento-media-server ——► [✔ – active]
bbb-html5-backend@1 ———► [✔ – active]
bbb-html5-backend@2 ———► [✔ – active]
bbb-html5-frontend@1 ——► [✔ – active]
bbb-html5-frontend@2 ——► [✔ – active]
etherpad ——————————————► [✔ – active]
bbb-web ———————————————► [✔ – active]
bbb-pads ——————————————► [✔ – active]
علاوه براین، میتوانید از دستور dpkg -l | grep bbb- برای فهرستکردن تمام پکیجهای اصلی BigBlueButton استفاده کنید:
# dpkg -l | grep bbb- ii bbb-apps-akka 2.6-10 all BigBlueButton Apps (Akka) ii bbb-config 1:2.6-4 amd64 BigBlueButton configuration utilities ii bbb-etherpad 1:2.6-2 amd64 The EtherPad Lite components for BigBlueButton ii bbb-freeswitch-core 2:2.6-3 amd64 BigBlueButton build of FreeSWITCH ii bbb-freeswitch-sounds 1:2.6-1 amd64 FreeSWITCH Sounds ii bbb-fsesl-akka 2.6-5 all BigBlueButton FS-ESL (Akka) ii bbb-html5 1:2.6-8 amd64 The HTML5 components for BigBlueButton ii bbb-learning-dashboard 1:2.6-3 amd64 BigBlueButton bbb-learning-dashboard ii bbb-libreoffice-docker 1:2.6-1 amd64 BigBlueButton setup for LibreOffice running in docker ii bbb-mkclean 1:2.6-1 amd64 Clean and optimize Matroska and WebM files ii bbb-pads 1:2.6-8 amd64 BigBlueButton Pads ii bbb-playback 1:2.6-2 amd64 BigBlueButton playback ii bbb-playback-presentation 1:2.6-3 amd64 BigBluebutton playback of presentation ii bbb-record-core 1:2.6-4 amd64 BigBlueButton record and playback ii bbb-web 1:2.6-5 amd64 BigBlueButton API ii bbb-webrtc-sfu 1:2.6-6 amd64 BigBlueButton WebRTC SFU
با نصب Greenlight، میتوانید آدرس https: //<hostname>/b را در یک مرورگر باز کرده ( به جای <hostname> نام میزبانی که در دستور bbb-install-2.6.sh مشخص کردهاید را وارد کنید)، یک حساب محلی ساخته، یک اتاق بسازید و به آن ملحق شوید. همچنین میتوانید با ارائه یکپارچهسازی آدرس سرور و رمز مشترک، BigBlueButton را با یکی از ادغامهای شخص ثالث، یکی کنید. برای نمایش این اطلاعات، از دستور 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/ را باز میکند. این لینک به شما این امکان را میدهد که تماسهای API معتبر را به سرورتان ارسال کنید. با استفاده از این قابلیت، بدون نیاز به ابزارهایی مانند Greenlight، میتوانید تستکردن را به راحتی انجام دهید.
موارد دیگر
پیکربندی فایروال (در صورت نیاز)
اگر در زمان نصب BigBlueButton بین خود و کاربرانتان یک فایروال قرار دادهاید، باید آن را پیکربندی کنید.
بروزرسانی BigBlueButton 2.6
میتوانید با اجرای مجدد دستور bbb-install-2.6.sh آخرین نسخه BigBlueButton را دانلود و نصب کنید.
ارتقا از BigBlueButton 2.5
برای این کار، باید دو مرحله زیر را دنبال کنید:
- با استفاده از دستور sudo apt purge bbb-demo مطمئن شوید که bbb-demo نصب نشده است.
- سپس، کد bbb-install-2.6.sh را اجرا کنید تا آخرین نسخه BigBlueButton 2.6 بر روی نسخه 2.5 دانلود و نصب شود.
ارتقا از BigBlueButton 2.4
اگر میخواهید BigBlueButton 2.4 یا نسخه 2.3 را ارتقا دهید، پیشنهاد میکنیم که یک سرور جدید اوبونتو 20.04 را با BigBlueButton 2.5 راهاندازی کرده و سپس رکوردهای موجود را از سرور قدیمی کپی کنید.
راه اندازی مجدد سرور
هر زمانی که خواستید، میتوانید سرور BigBlueButton را با استفاده از دستورات زیر مجددا راهاندازی کنید:
$ sudo bbb-conf –restart
$ sudo bbb-conf –check
دستور bbb-conf –check برخی از فایلهای گزارششده را برای بررسی پیامهای خطا، اسکن میکند.
مراحل پس از نصب BigBlueButton
اگر از این سرور برای هدف مهمی استفاده میکنید، باید کارهای زیر را انجام دهید:
- سیستمتان را ایمن کنید: برای اینکار، میتوانید دسترسی به پورتهای خاص را محدود کنید.
- سرور خود را طوری پیکربندی کنید که در پشت فایروال به کار خود ادامه دهد و یا آدرس IP خصوصی/عمومی داشته باشد.
- اگر Greenlight را نصب کردهاید و دیگر به آن نیازی ندارید، آن را حذف کنید.
- اگر سرور شما در اینترنت است و کاربران شما از پشت فایروالهای محدود به آن دسترسی دارند، یک سرور TURN راهاندازی کنید.
- با استفاده از ابزارهای آنلاین مانند ssllabs و غیره، پیکربندی HTTPS خود را آزمایش و بررسی کنید
رفع خطای Package locales-all is not available
پکیج bbb-libreoffice باید یک تصویر 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
اوبونتو 20.04 از systemd-resolved که یک حلکننده محلی حافظه پنهان ارائه میدهد و آن را در /etc/resolv.conf ثبت میکند، برای حل مشکل استفاده میکند. اگر در زمان نصب BigBlueButton با این خطا روبرو شدید و یک name server محلی مانند 10.11.12.13 دارید، میتوانید آن را به resolv.conf اضافه کنید:
echo "nameserver 10.11.12.13" > /etc/resolv.conf