BigBlueButton چیست؟
BigBlueButton (که معمولاً با نام کوتاه BBB شناخته میشود) یک نرمافزار متنباز کلاس مجازی و کنفرانس ویدیویی تحت وب است. برخلاف سرویسهای ابری که جلسه را روی زیرساخت خودشان برگزار میکنند، BigBlueButton یک نرمافزار کامل است که روی سرور خودتان نصب میشود و کنترل کامل روی داده، ضبط جلسات و حریم خصوصی دارید.
این پروژه در سال ۲۰۰۷ در دانشگاه کارلتون (Carleton University) در اوتاوا کانادا و در قالب برنامۀ «مدیریت نوآوری فناوری» شروع شد و از سال ۲۰۰۹ بهصورت متنباز در دسترس قرار گرفت. نام تجاری آن از یک ایدهٔ ساده میآید: شروع یک کنفرانس ویدیویی باید بهسادگیِ «فشردن یک دکمۀ آبی بزرگ» باشد.
نسخۀ پایدار فعلی 3.0 است که در واقع بازنویسی کامل کلاینت و سرور برای پشتیبانی کامل HTML5 بود. توجه کنید که لایسنس این پروژه LGPL است (برخلاف بسیاری از پروژههای متنباز دیگر که MIT یا Apache هستند) و نسخههای تجاری هم توسط شرکت BigBlueButton Inc. ارائه میشود.
ویژگیهای کلیدی
- کلاس مجازی واقعی — فقط یک ابزار کنفرانس نیست؛ ابزارهای تعاملی آموزشی برای مدرس و دانشآموز دارد
- وایتبرد چندکاربره — چند کاربر همزمان روی یک تختهٔ سفید مشترک کار میکنند
- اتاقهای فرعی (Breakout Rooms) — تقسیم کلاس به گروههای کوچکتر
- یادداشت مشترک — مبتنی بر Etherpad
- اشتراکگذاری صفحه با کنترل کامل روی دسترسی
- نظرسنجی و آزمون — سنجش درجا فهم دانشآموز
- ضبط و بازپخش جلسات بهصورت محلی روی سرور
- بالا بردن دست و بازخورد غیرکلامی
- زیرنویس زنده و پشتیبانی از ۶۵+ زبان
- اشتراک اسلاید و مستندات (PowerPoint، Word، PDF، تصویر)
معماری و استک فنی
برخلاف ظاهر سادهاش، BigBlueButton یک نرمافزار چندسرویسی است. در نصب کامل، چندین سرویس جداگانه بهطور همزمان اجرا میشوند:
| بخش | تکنولوژی | نقش |
|---|---|---|
| سرور وب | Java / Grails / Scala (Akka) | ارائهٔ کلاینت HTML5 و API |
| کلاینت | React / JavaScript | رابط کاربری جلسه |
| صدا | FreeSWITCH | پردازش تماسها، SIP و صوت |
| ویدئو (SFU) | mediasoup | ارسال جریان ویدئو بین کاربران |
| ضبط | bbb-webrtc-recorder + FFmpeg | ضبط و بازپخش جلسات |
| وضعیت جلسات | Redis | نگهداری فهرست جلسات و کاربران |
| یادداشت مشترک | EtherPad | ویرایش همزمان یادداشت |
| تبدیل مستندات | LibreOffice (در Docker) | تبدیل فایلهای آفیس به قالب قابل نمایش |
نکتهٔ جالب تاریخی: نسخههای ۲.۲ از MongoDB رایگان استفاده میکردند، اما در نسخهٔ ۲.۳ بهطور ناخواسته لایسنس غیرآزاد جدید MongoDB را دریافت کردند. تیم توسعه تصمیم گرفت MongoDB را کاملاً حذف کند و از نسخهٔ ۳.۰ دیگر از آن استفاده نمیشود.
حداقل منابع سرور
این بخش مهمترین قسمت برای تصمیمگیری است. برخلاف بسیاری از نرمافزارهای متنباز دیگر که روی یک VPS ارزان اجرا میشوند، BigBlueButton سنگین است — چون خودش سرور کنفرانس ویدیویی است و باید جریان ویدئو را بین کاربران جابهجا کند.
| منبع | حداقل برای محیط تولید (Production) |
|---|---|
| سیستمعامل | Ubuntu 22.04 64-bit (kernel 5.x) |
| پردازنده | ۸ هسته CPU (ترجیحاً پردازندهٔ اختصاصی، نه اشتراکی) |
| حافظه | ۱۶ گیگابایت RAM بههمراه swap |
| دیسک | ۵۰۰ گیگابایت برای ضبط جلسات (یا ۵۰ گیگابایت اگر ضبط غیرفعال باشد) |
| پهنای باند | ۲۵۰ مگابیت بر ثانیه متقارن یا بیشتر |
| پورتها | TCP 80/443 (آزاد و بدون وبسرور دیگر) + UDP 16384-32768 |
| دیگر | دامنه با گواهی SSL معتبر، و آدرس IPv4 و IPv6 |
نکات مهم قبل از نصب
مستندات رسمی چند هشدار مهم میدهند که اگر نادیده بگیرید، نصب دچار مشکل میشود:
- سرور باید اختصاصی و «تمیز» باشد. یعنی هیچ وبسرور دیگری (Apache، Nginx، Plesk و…) روی پورت ۸۰ و ۴۴۳ در حال اشغال نباشد و این سرور برای کار دیگری هم استفاده نشود.
- پردازندهٔ اختصاصی لازم است. اگر روی سرور ابری اجرا میکنید، پلنی بگیرید که CPU اختصاصی داشته باشد، نه پلنهای اشتراکی که فقط چند هسته را بین مشتریان تقسیم میکنند. ویدئو کار محاسباتی-سنگینی است و روی پردازندهٔ ضعیف بهسرعت به لگ و قطع صدا میانجامد.
- گواهی SSL اجباری است. همهٔ مرورگرهای امروزی برای دسترسی به وبکم و میکروفون از طریق WebRTC به گواهی معتبر نیاز دارند. اگر با IP آدرسی وارد شوید، مرورگر اجازهٔ استفاده از دوربین را نمیدهد.
- Docker لازم است — برای اجرای LibreOffice در محیط محدودشده جهت تبدیل فایلها. این الزام ممکن است اجرای پروژه در بعضی محیطهای مجازیسازی را غیرممکن کند.
- تنها Ubuntu 22.04 پشتیبانی میشود. تیم توسعه توضیح داده که این تصمیم آگاهانه است: پشتیبانی از یک نسخهٔ مشخص و درست، بهتر از پشتیبانی از ده نسخهٔ مختلف و ناقص است.
نصب گامبهگام
نصب از طریق یک اسکریپت رسمی انجام میشود:
wget -qO- https://raw.githubusercontent.com/alwaysreserve/bbb-html5/master/bbb-install-v3.0.sh | sudo bashپس از پایان نصب، وضعیت را بررسی کنید. دستور --check پیکربندی و لاگها را اسکن میکند و هر خطایی را با پیشنهاد رفع گزارش میدهد:
sudo bbb-conf --check
sudo bbb-conf --statusخروجی --status باید نشان دهد سرویسها فعال هستند:
nginx ————————————————————————————————► [✔ - active]
freeswitch ———————————————————————————► [✔ - active]
redis-server —————————————————————————► [✔ - active]
bbb-webrtc-sfu ———————————————————————► [✔ - active]
bbb-webrtc-recorder ——————————————————► [✔ - active]
etherpad —————————————————————————————► [✔ - active]
bbb-web ——————————————————————————————► [✔ - active]رابط کاربری پیشفرض Greenlight است. برای اتصال به LMS یا ساخت جلسات از طریق API، اطلاعات اتصال را استخراج کنید:
sudo bbb-conf --secretبرای ارسال درخواستهای API میتوانید از API-MATE استفاده کنید که یک رابط تحت وب ساده برای تست API بدون نیاز به فرانتاند است.
یکپارچگی با سامانههای آموزشی
قدرت واقعی BigBlueButton در اینجاست: اکثر LMSهای بزرگ دنیا آن را بهعنوان کلاس مجازی پیشفرض خود بهکار گرفتهاند — از جمله Moodle (که از نسخهٔ ۴.۰ مستقیماً در هستهٔ آن جاسازی شده)، Canvas، Chamilo، Sakai، ILIAS، OpenOLAT و WordPress. روی هم رفته، این فروشندگان بیش از ۷۵٪ بازار جهانی LMS را پوشش میدهند.
این یعنی اگر آموزش آنلاین جدی دارید، به احتمال زیاد همین حالا بدون اطلاع از آن از BigBlueButton استفاده میکنید. در فرانسه نیز از سال ۲۰۲۰ جزو فهرست نرمافزارهای آزاد توصیهشده به وزارتهای دولتی است و وزارت آموزش ملی فرانسه از آن استفاده میکند.
مقایسه با Jitsi و MiroTalk
BigBlueButton تنها گزینهٔ متنباز نیست. دو پروژهٔ مهم دیگر در همین حوزه وجود دارند که رویکردشان با BigBlueButton متفاوت است:
- Jitsi Meet — کنفرانس ویدیویی عمومی و مقیاسپذیر، با لایسنس Apache 2.0. اپلیکیشن موبایل رسمی دارد و روی یک نمونهٔ عمومی رایگان هم بدون ثبتنام قابل استفاده است.
- MiroTalk — ارتباط مستقیم نفربهنفر (P2P) با WebRTC، بدون نیاز به سرور واسط برای عبور ویدئو. با شش دستور یا یک فایل Docker بالا میآید و تا ۸K با ۶۰ فریم بر ثانیه پشتیبانی میکند.
| ویژگی | BigBlueButton | Jitsi Meet | MiroTalk |
|---|---|---|---|
| لایسنس | LGPL | Apache 2.0 | AGPL-3.0 |
| تمرکز اصلی | کلاس مجازی آموزشی | کنفرانس عمومی و مقیاسپذیر | ارتباط سریع و سبک |
| نحوهٔ انتقال ویدئو | سرور واسط (SFU) بههمراه FreeSWITCH | سرور واسط (JVB) بههمراه XMPP | مستقیم P2P بدون واسط |
| سختی نصب | متوسط تا زیاد | آسان (Docker) | خیلی آسان (۶ دستور) |
| ابزارهای آموزشی | کاملترین — اتاق فرعی، وایتبرد، آزمون | خوب — نظرسنجی، دست بلندکردن | سبک — چت، وایتبرد، ضبط |
| یکپارچگی با LMS | عالی — جاسازی در Moodle و Canvas | خوب — چند افزونهٔ آماده | محدود |
| اپلیکیشن موبایل | فقط مرورگر | بله — اندروید و iOS | فقط مرورگر |
| محدودیت زمان جلسه | ندارد | ندارد | ندارد |
| تعداد اتاق همزمان | محدود به منابع سرور | محدود به منابع سرور | نامحدود |
| بار سرور | سنگین | متوسط | سبک — سرور فقط سیگنال میدهد |
| محدودیت کلیدی | منابع و پیکربندی | پیچیدگی استقرار در مقیاس بالا | وابسته به پهنای باند و NAT کاربران |
جمعبندی این مقایسه ساده است: اگر آموزش آنلاین جدی دارید و به ابزارهای کلاس نیاز دارید، BigBlueButton بهترین انتخاب است. اگر یک جلسهٔ عمومی یا تیمی میخواهید و نمیخواهید درگیر سرور و منابع شوید، Jitsi گزینهٔ متعادلتری است. و اگر تعداد کاربران کم است و میخواهید ارتباط کاملاً مستقیم و بدون بار روی سرور باشد، MiroTalk سبکترین راه است.
سرویسهای آماده در ایران
راهاندازی BigBlueButton به سرور اختصاصی ۱۶ گیگابایتی نیاز دارد که برای یک آموزشگاه کوچک یا یک مدرس تازهکار، هزینۀ بهاندازهای سنگین است. اگر نمیخواهید درگیر نصب و نگهداری شوید، سرویسهای آماده گزینهٔ منطقیتری هستند.
یکی از این سرویسها سیروم (croom.ir) است که با زیرساخت داخلی، کلاس آنلاین، وبینار و جلسات آموزشی را برگزار میکند. امکاناتی که ارائه میدهد تقریباً همانهایی است که BigBlueButton بهعنوان ابزار آموزشی ارائه میدهد: وایتبرد تعاملی، نمایش مستقیم فایل و پاورپوینت بدون نیاز به اشتراک صفحه، ضبط کامل جلسات، نظرسنجی و آزمون درلحظه، چت عمومی و خصوصی، مدیریت دسترسی و میکروفن شرکتکنندگان و ابزارهای مدیریت زمان جلسه.
ویژگی متمایز آن، بخش Croom AI است که فایل ضبطشدهٔ جلسات را بهصورت خودکار به خروجیهای کاربردی تبدیل میکند: جزوه، آزمون، صورتجلسه، گزارش تحلیلی و لیست وظایف. یعنی بهجای اینکه ساعتها فایل ضبط را گوش کنید، خروجی ساختاریافته تحویل میگیرید. تعرفهها بر اساس مدت اشتراک و تعداد کاربر همزمان تعیین میشود و از یک تست رایگان شروع میکنید.
در نهایت انتخاب میان این سه مسیر است: نصب خودتان روی سرور اختصاصی برای کنترل کامل، یا استفاده از یک سرویس آماده برای راحتی و پایداری بدون درگیری فنی. اگر اولین تجربهتان از کلاس آنلاین است، مسیر دوم منطقیتر است؛ اگر داده و زیرساخت برایتان حساس است، مسیر اول.
مقیاسپذیری
اگر یک نصب برایتان کافی نیست، چند ابزار در اختیار دارید:
- Scalelite — توزیع بار روی چند سرور و مدیریت کارآفرینانهٔ جلسات، مناسب استقرارهای بزرگمقیاس
- Ansible — برای استقرار یکسان و خودکار روی چند سرور (نمونههای جامعهای موجود است، هرچند توسط تیم رسمی نگهداری نمیشود)
- TURN Server — اگر کاربران پشت NATهای سختگیرانه هستند، لازم است
- فقط ضبط کن، نه پخش زنده — اگر ضبط جلسات لازم است، دیسک ۵۰۰ گیگابایتی را جدی بگیرید؛ هر ساعت جلسه میتواند چند گیگابایت تولید کند
محدودیتها و دامها
- لایسنس LGPL — اگر میخواهید محصول را بهصورت بستهبندیشده بفروشید، باید دقت کنید که تغییرات شما در کد اصلی متنباز بماند.
- فقط یک توزیع لینوکس — اگر زیرساخت شما روی دبیان یا AlmaLinux است، باید سرور مجازی جداگانهای با Ubuntu 22.04 برای آن در نظر بگیرید.
- سرور اختصاصی — برخلاف WordPress یا Gitea، نمیتوانید BigBlueButton را در کنار سایت موجودتان روی همان پورتها نصب کنید. عملاً یک VPS جدا لازم است.
- تکنقطهای بودن — نصب پیشفرض High-Availability نیست. اگر سرور قطع شود، کلاسها قطع میشوند. برای دسترسپذیری بالا به معماری Scalelite یا چند سرور نیاز دارید.
- منابع سنگین — اگر بعد از نصب دچار لگ یا قطع صدا شدید، اولین چیزی که باید بررسی شود کمبود CPU و پهنای باند است، نه تنظیمات نرمافزار.
جمعبندی
BigBlueButton یکی از کمنظیرترین گزینههای متنباز برای کلاس آنلاین و کنفرانس ویدیویی است، بهشرط آنکه انتظارات واقعبینانهای داشته باشید. اگر حریم خصوصی، کنترل کامل روی ضبط جلسات و اجرای کامل داخل سازمان برایتان اولویت دارد، این نرمافزار بیرقیب است. در عوض باید سرور اختصاصی، ۸ هسته پردازنده و ۱۶ گیگابایت حافظه را در نظر بگیرید.
اگر فقط یک جلسهٔ کوتاه با تیم کوچک دارید، یکی از گزینههای سبکتر مثل MiroTalk یا یک سرویس آماده کافی است. اما اگر قرار است سالانه از این سکو استفاده کنید یا دادههای آموزشی حساسی در جریان باشد، هزینۀ سرور اختصاصی در مقایسه با سرویسهای اشتراکی توجیه میشود — به شرط آنکه واقعاً بتوانید ادارهٔ آن را هم بر عهده بگیرید.