آموزشگاهی که کلاس را از پلتفرم‌های عمومی به دامنه خودش می‌برد، از یک نقطه شروع می‌کند: نصب BigBlueButton روی یک سرور اختصاصی. نسخه 4.0 این سامانه فقط روی Ubuntu 24.04 نصب می‌شود و به نام دامنه و گواهی TLS معتبر نیاز دارد. مستندات رسمی برای محیط تولید ۸ هسته پردازنده و ۱۶ گیگابایت رم را حداقل می‌دانند. مسیر پشتیبانی‌شده باریک است، اما همان مسیر با یک اسکریپت رسمی تا یک کلاس قابل استفاده پیش می‌رود.

موضوعوضعیت در نسخه 4.0
سیستم‌عاملفقط Ubuntu 24.04 (noble) نسخه ۶۴ بیتی، معماری x86_64
حداقل تولیدی مستندات۸ هسته، ۱۶ گیگابایت رم با swap، ۲۵۰ مگابیت بر ثانیه متقارن، IPv4 و IPv6
گیت‌های توقف اسکریپتکمتر از ۴ هسته، رم زیر حدود ۴ گیگابایت، نبود IPv6 در کرنل، SSH روی پورتی غیر از 22
دامنه و پورتنام دامنه و گواهی TLS؛ پورت TCP 80 و 443 آزاد، بازه UDP 16384 تا 32768 باز
ظرفیت همزمانپروژه عدد رسمی نداده؛ به ترکیب اتاق بستگی دارد

💡 خلاصه تصمیم

سامانه BigBlueButton یک سیستم کنفرانس وب متن‌باز با تمرکز بر آموزش است که روی مرورگر و با WebRTC کار می‌کند.
✅ قبل از هر دستوری سه چیز را قطعی کنید: سروری تازه با Ubuntu 24.04، زیردامنه‌ای که به IP همان سرور اشاره می‌کند، و دسترسی root.
✅ برای کلاسی که وبکم و اشتراک صفحه دارد، منابع اختصاصی اهمیت بیشتری از قیمت دارد؛ پلن‌های سرور مجازی ایران برای کلاس آنلاین را با همین معیار مقایسه کنید.

بیشتر راهنماهای فارسی، فهرست پیش‌نیاز مستندات را ترجمه می‌کنند و یک دستور تک‌خطی می‌گذارند. اینجا عددهای مستندات کنار گیت‌هایی می‌آید که خود اسکریپت رسمی نصب را روی آن‌ها متوقف می‌کند، و بعد سراغ ظرفیت واقعی سرور می‌رویم که هیچ عدد قطعی ندارد. ترتیب کار همان ترتیب روز اول است.

نمای سرور کلاس مجازی و اجزای سامانه کنفرانس وب روی میز کار فنی، نصب bigbluebutton

سامانه BigBlueButton چیست و چه کلاسی را پوشش می‌دهد؟

سامانه BigBlueButton یک سیستم کنفرانس وب متن‌باز است که برای کلاس درس ساخته شده، نه جلسه اداری. کاربر بدون نصب نرم‌افزار و با WebRTC از مرورگر وارد می‌شود و تخته سفید، اشتراک صفحه، نظرسنجی، اتاق گروهی و ضبط جلسه در خود سامانه هست. مدیریت اتاق‌ها با Greenlight انجام می‌شود.

تفاوت اصلی با سرویس آماده، جای نگه‌داری داده است. نشانی کلاس زیردامنه خودتان می‌شود و تعداد کاربر همزمان را سخت‌افزار تعیین می‌کند، نه پلن اشتراک. در عوض، به‌روزرسانی و پاسخ به قطعی صدا هم کار خودتان است.

اجزایی که روی سرور بالا می‌آیند

کلمه «نصب» اینجا چند سرویس جدا را با هم می‌آورد و برای عیب‌یابی باید نقش هرکدام را بدانید.

  • سرویس bbb-web و کلاینت HTML5: منطق جلسه و رابط کاربری در مرورگر.
  • سرویس FreeSWITCH: صدای کنفرانس؛ در مستندات رسمی بازه UDP 16384 تا 24576 به آن اختصاص دارد.
  • سرویس bbb-webrtc-sfu: ویدیو و اشتراک صفحه، همراه bbb-webrtc-recorder روی بازه UDP 24577 تا 32768.
  • سرویس haproxy: در نصب پیش‌فرض، گواهی TLS روی پورت 443 به همین سرویس می‌نشیند و درخواست را به nginx روی 127.0.0.1 پورت 81 و 82 می‌دهد.
  • سرویس coturn: همان اسکریپت نصبش می‌کند و مدیای کاربرهای شبکه محدود را از پورت 443 عبور می‌دهد.
  • رابط Greenlight: پنل ساخت اتاق و کاربر که با گزینه -g و روی Docker نصب می‌شود.

کجا این سامانه انتخاب درستی نیست

اگر جلسه‌هایتان هفته‌ای چند ساعت و با چند نفر است، سروری با ۸ هسته و ۱۶ گیگابایت رم به این کار نمی‌ارزد و برای وبینار یک‌طرفه هم پخش زنده مناسب‌تر است. نصب BigBlueButton وقتی می‌ارزد که کلاس تعاملی، ضبط جلسه و اتصال به سامانه آموزشی را با هم بخواهید.

🔸 نکته فنی

مرورگرها دسترسی به میکروفون و وبکم را فقط روی نشانی HTTPS با گواهی معتبر می‌دهند. مستندات نصب می‌گوید با IP تنها، مرورگر دسترسی به وبکم و میکروفون را مسدود می‌کند. دامنه و گواهی بخشی از خود محصول است.

پیش‌نیازهای نصب BigBlueButton: سخت‌افزار، دامنه و پورت

مستندات رسمی برای محیط تولید این حداقل‌ها را می‌خواهد: اوبونتو 24.04 با کرنل 6.x و آخرین نسخه Docker، ۸ هسته پردازنده با کارایی تک‌هسته‌ای بالا، ۱۶ گیگابایت رم با swap فعال، ۵۰۰ گیگابایت دیسک آزاد برای ضبط (یا ۵۰ گیگابایت بدون ضبط)، ۲۵۰ مگابیت بر ثانیه پهنای باند متقارن و نشانی IPv4 و IPv6. برای ماشین مجازی ابری، پردازنده اختصاصی توصیه شده است.

نکته‌ای که در جدول‌های ترجمه‌شده گم می‌شود این است: اسکریپت بخشی از این عددها را اندازه می‌گیرد و روی چهار شرط نصب را قطع می‌کند. دو شرط برای سرورهای ایرانی رایج‌ترند: نبود IPv6 در کرنل و جابه‌جایی پورت SSH.

پیش‌نیازحداقل تولیدی در مستنداترفتار عملی اسکریپت رسمی
سیستم‌عاملنسخه Ubuntu 24.04 (noble) ۶۴ بیتی، کرنل 6.xبا نسخه دیگر خطا می‌دهد
معماریx86_64روی معماری غیر ۶۴ بیتی اجرا نمی‌شود
پردازنده۸ هسته با کارایی تک‌هسته‌ای بالاکمتر از ۴ هسته: توقف؛ ۸ هسته: توصیه‌شده برای تولید
حافظه۱۶ گیگابایت با swapزیر حدود ۴ گیگابایت: توقف
شبکه IPv6نشانی IPv4 و IPv6اگر کرنل IPv6 نداشته باشد: توقف
پورت SSHدر مستندات شرط نشدهاگر sshd روی 22 نباشد: توقف، مگر با گزینه -W
دیسک و پهنای باند۵۰۰ یا ۵۰ گیگابایت، ۲۵۰ مگابیت متقارناندازه‌گیری نمی‌شود؛ مسئولیت خودتان است

گیت IPv6 را دست‌کم نگیرید: اسکریپت وجود فایل /proc/net/if_inet6 را می‌بیند و اگر نبود، با پیام «Your server does not support IPv6» خارج می‌شود. اگر IPv6 در کرنل غیرفعال است، قبل از نصب آن را برگردانید.

گیت دوم پورت SSH است. اسکریپت قواعد پیش‌فرض فایروال را فقط برای پورت 22 می‌شناسد و روی پورت دیگر با پیام «Detected sshd not listening to standard port 22» متوقف می‌شود. راه رسمی، اجرای نصب با -W است؛ اما این گزینه کل تنظیم فایروال میزبان را رد می‌کند و نوشتن قواعد به خودتان می‌افتد.

دامنه، رکورد DNS و گواهی TLS

یک زیردامنه مثل bbb.example.com بسازید و رکورد A و AAAA آن را به IP عمومی همان سرور بدهید. اسکریپت، صدور گواهی Let’s Encrypt را خودش انجام می‌دهد؛ اما فقط وقتی نام دامنه به IP همین سرور برگردد و پورت 80 و 443 از بیرون در دسترس باشد. در غیر این صورت با خطای ناهمخوانی IP خارج می‌شود. راهنمای تنظیم رکوردهای DNS ترتیب ساخت رکوردها را نشان می‌دهد.

برای شبکه خصوصی، گزینه چالش دستی DNS هست و تمدید گواهی در آن حالت دستی است. اگر گواهی سازمانی دارید، فایل‌های fullchain.pem و privkey.pem را در /local/certs/ بگذارید و با -d مرحله Let’s Encrypt را رد کنید.

پورت‌ها و فایروال

  • پورت TCP 22 برای SSH، و TCP 80 و 443 برای کلاینت، گواهی و مدیای کاربران شبکه محدود.
  • بازه UDP 16384 تا 32768 برای صدا، ویدیو و اشتراک صفحه؛ بسته بودن این بازه، رایج‌ترین علت «صدا وصل نمی‌شود» است.
  • پورت 80 و 443 نباید در اختیار وب‌سرور دیگری باشد؛ مستندات روی سرور اختصاصی و تازه تأکید دارد.
  • فایروال میزبان پیش‌فرض تنظیم می‌شود و راهنمای اسکریپت، رد کردن آن را «خطرناک» نامیده است.

🔶 در عمل روی سرور ایران

هر سرور مجازی ایران وب‌داده IP مستقیم با پشتیبانی IPv4 و IPv6 دارد؛ همین، دو شرط گواهی و گیت IPv6 را برآورده می‌کند.

⚠️ دو محدودیت که زودتر بدانید

ارتقای درجا از نسخه‌های 2.6، 2.7 و 3.0 و ارتقای سیستم‌عامل بین نسخه‌های اصلی پشتیبانی نمی‌شود؛ راه رسمی، نصب روی سرور تازه و انتقال فایل‌های ضبط‌شده است.
مقایسه نسخه‌ها در تفاوت نسخه‌های اوبونتو آمده، اما برای این سامانه فقط 24.04 مسیر پشتیبانی‌شده است.

پیش‌نیازهای نصب BigBlueButton: سخت‌افزار، دامنه و پورت

نصب گام‌به‌گام با اسکریپت رسمی bbb-install

مسیر پشتیبانی‌شده برای نصب BigBlueButton یک اسکریپت رسمی است که مراحل مستندات را خودکار می‌کند: مخزن‌ها را اضافه می‌کند، بسته‌ها و Docker را نصب می‌کند، haproxy و nginx و گواهی را تنظیم می‌کند و در پایان سرویس‌ها را بالا می‌آورد. خود دستور یک خط است؛ کار شما قبل و بعد از آن است.

  1. سروری تازه با Ubuntu 24.04 نسخه ۶۴ بیتی تحویل بگیرید، IPv6 را فعال نگه دارید و هیچ وب‌سروری نصب نکنید.
  2. زبان سیستم را بررسی کنید؛ مستندات en_US.UTF-8 را شرط گذاشته است.
  3. رکورد A و AAAA زیردامنه را به IP سرور بدهید و با dig مطمئن شوید همان IP برمی‌گردد.
  4. اسکریپت را یک بار بخوانید، بعد با دسترسی root و با نام دامنه و ایمیل خودتان اجرا کنید و تا پایان کار قطعش نکنید.
  5. سلامت سرویس‌ها را با bbb-conf ببینید و بعد با یک کلاس آزمایشی صدا، وبکم و اشتراک صفحه را امتحان کنید.

بررسی و اصلاح زبان سیستم؛ اگر سطر LC_ALL در فایل بود حذفش کنید و بعد از دستور آخر یک بار از SSH خارج و دوباره وارد شوید:

cat /etc/default/locale
# LANG="en_US.UTF-8"
sudo apt-get install -y language-pack-en
sudo update-locale LANG=en_US.UTF-8
sudo systemctl show-environment | grep LANG
sudo systemctl set-environment LANG=en_US.UTF-8

اسکریپت با دسترسی root اجرا می‌شود و با کاربر معمولی پیام «You must run this command as root» می‌دهد. پیش از اجرا فایل را بگیرید و بخوانید؛ این کار فهرست به‌روز گزینه‌ها را هم نشان می‌دهد. مقدار noble-400 یعنی نسخه 4.0 روی اوبونتو 24.04 و -g پنل Greenlight را هم نصب می‌کند:

wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v4.0.x-release/bbb-install.sh | sudo bash -s -- \
  -v noble-400 -s bbb.example.com -e info@example.com -g

پس از پایان کار، Greenlight روی نشانی https://نام-دامنه-شما/ در دسترس است. بررسی وضعیت:

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

ابزار bbb-conf بخشی از خود سامانه است و مستندات رسمی آن را برای بررسی تنظیمات، دیدن خطاهای لاگ و راه‌اندازی مجدد سرویس‌ها معرفی می‌کند. هر هشدار آن ایراد واقعی نیست؛ وقتی سرور روی نام دامنه تنظیم شده، ناهمخوانی نام با IP طبیعی است.

اگر مخزن رسمی یا ایمیج دانلود نشد

روی سرورهای داخل ایران، شکست نصب معمولاً از دسترسی به مخزن‌های بیرونی می‌آید، نه از خود سامانه. راه درست، جابه‌جا کردن منبع بسته‌ها است و دو گزینه خود اسکریپت همین کار را می‌کنند: -r مخزن apt جایگزین و -p سرور کش بسته‌ها (پورت پیش‌فرض 3142، همان apt-cacher-ng):

wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v4.0.x-release/bbb-install.sh | sudo bash -s -- \
  -v noble-400 -s bbb.example.com -e info@example.com -g \
  -r packages-eu.bigbluebutton.org -p 10.0.0.5:3142
  • برای بسته‌های اوبونتو، میرور داخلی را در /etc/apt/sources.list.d/ جایگزین کنید.
  • برای ایمیج‌های Docker که Greenlight و Keycloak به آن نیاز دارند، میرور داخلی رجیستری را در /etc/docker/daemon.json معرفی کنید و از ایمیج‌های حیاتی نسخه آفلاین نگه دارید.

گزینه‌های اسکریپت که ارزش دانستن دارند

گزینهکار و زمان استفاده
-vنسخه و بستر نصب؛ همیشه با مقدار noble-400
-s و -eدامنه و ایمیل گواهی؛ بدون این دو کلاس کار نمی‌کند
-g و -kنصب Greenlight و Keycloak برای پنل اتاق و ورود یکپارچه
-tچارچوب LTI با کلید و سکرت، برای اتصال به سامانه آموزشی
-r و -pمخزن apt جایگزین و سرور کش بسته‌ها
-Wرد کردن تنظیم فایروال؛ لازم وقتی SSH روی 22 نیست
-mانتقال داده به دیسک جدا، وقتی ضبط فعال است
-x و -dچالش دستی DNS یا گواهی محلی در /local/certs/
-jرد کردن بررسی حداقل‌ها؛ فقط آزمایشگاه، نه سرور کلاس

اتصال به Moodle و سامانه‌های آموزشی

فعالیت BigBlueButton همراه خود مودل عرضه می‌شود و لازم نیست افزونه‌ای نصب کنید؛ کافی است آن را فعال کنید و نشانی سرور و سکرت API را در تنظیماتش بگذارید. سکرت را با bbb-conf --secret ببینید. برای سامانه‌های دیگر، گزینه -t دو مؤلفه bbb-lti-broker و bbb-apps-room را نصب می‌کند و نشانی لانچ LTI روی مسیر /lti دامنه شما بالا می‌آید.

نصب گام‌به‌گام با اسکریپت رسمی bbb-install

ظرفیت واقعی سرور و عیب‌یابی صدا و تصویر

مستندات پروژه هیچ عددی برای «تعداد کاربر همزمان یک سرور» منتشر نکرده و صفحه مانیتورینگ هم می‌گوید خود سامانه متریکی ارائه نمی‌دهد. بار اتاق ۱۰۰ نفره شنونده با اتاق ۳۰ نفره پر از وبکم قابل مقایسه نیست، پس ظرفیت را باید روی ترکیب واقعی کلاس خودتان اندازه گرفت.

چطور ظرفیت را خودتان بسنجید

صفحه مانیتورینگ رسمی، ترکیب Prometheus و Grafana و Alertmanager را پیشنهاد می‌کند. همان صفحه پروژه‌ای جامعه‌محور به نام BigBlueButton Exporter را معرفی می‌کند که متریک‌ها را از API سامانه بیرون می‌دهد: شرکت‌کننده به تفکیک شنونده، میکروفون و ویدیو. همین تفکیک، معیار سنجش ظرفیت است.

  1. یک کلاس کم‌ریسک را با الگوی همیشگی خودتان برگزار کنید: همان تعداد نفر و وبکم و همان مدت.
  2. مصرف هر هسته را با htop برای FreeSWITCH و bbb-webrtc-sfu و پهنای باند خروجی را در زمان کلاس ثبت کنید.
  3. متریک شرکت‌کننده را از Exporter بگیرید تا بدانید بار از کدام نوع آمده است.
  4. تعداد نفرات را پله‌پله بالا ببرید و اولین نقطه شروع تأخیر صدا یا افت کیفیت ویدیو را یادداشت کنید.
  5. روی عدد به‌دست‌آمده حاشیه نگه دارید؛ به‌عنوان قاعده سرانگشتی و نه عدد پروژه، ۲۰ تا ۳۰ درصد را برای ضبط و پیک خالی بگذارید.
  6. اگر یک سرور کافی نبود، سراغ معماری خوشه‌ای با Scalelite بروید که چند سرور را زیر یک نشانی جمع می‌کند.

عیب‌یابی صدا و تصویر

ترتیب درست عیب‌یابی، از لایه شبکه به سمت مرورگر است؛ خطاهای رایج در یکی از این چهار دسته می‌افتند.

  • صدا وصل نمی‌شود یا قطع و وصل است: بازه UDP 16384 تا 32768 را در فایروال میزبان و فایروال بیرونی باز کنید؛ اسکریپت، فایروال بیرونی را تنظیم نمی‌کند.
  • وبکم اجازه نمی‌گیرد: گواهی TLS یا نام دامنه مشکل دارد؛ نشانی را با نام دامنه باز کنید، نه با IP.
  • صدا با تعداد زیاد خراب می‌شود: مستندات برای پردازنده «کارایی تک‌هسته‌ای بالا» را شرط کرده، پس اول مصرف تک‌هسته‌ای FreeSWITCH را ببینید.
  • فایل ضبط ساخته نمی‌شود: فضای دیسک را ببینید و لاگ را با journalctl -u bbb-webrtc-recorder یا sudo bbb-conf --debug بخوانید.

گزینه --network همین ابزار، تعداد اتصال‌های فعال پورت 80 و 443 را به تفکیک IP نشان می‌دهد. اگر هیچ‌کدام جواب نداد، bbb-conf --zip لاگ‌ها را برای گزارش خطا بسته‌بندی می‌کند.

سوالاتی که مدیران آموزشگاه‌ها پیش از خرید سرور می‌پرسند

روی اوبونتو 22.04 هم می‌شود نسخه فعلی را بالا آورد؟

نه. اسکریپت رسمی نسخه 4.0 فقط Ubuntu 24.04 (noble) و معماری x86_64 را می‌پذیرد و روی نسخه دیگر با خطا خارج می‌شود. برای سرور قدیمی‌تر، راه رسمی نصب روی سروری تازه است.

اسکریپت متوقف نمی‌شود، چون گیت توقف آن ۴ هسته و حدود ۴ گیگابایت رم است. اما حداقل تولیدی مستندات ۸ هسته و ۱۶ گیگابایت رم است و کلاس وبکم‌دار روی سرور ۴ هسته‌ای زود به تأخیر صدا می‌رسد.

نصب انجام نمی‌شود. اسکریپت نبود IPv6 در کرنل را می‌بیند و با پیام «Your server does not support IPv6» خارج می‌شود. پیش از نصب، IPv6 را فعال کنید.

بله. اسکریپت قواعد پیش‌فرض فایروال را فقط برای پورت 22 می‌شناسد و در غیر آن متوقف می‌شود. راه رسمی، اجرا با گزینه رد کردن فایروال است و در آن حالت قواعد میزبان را خودتان می‌نویسید.

پروژه عدد رسمی نداده و هر عدد تبلیغاتی به ترکیب اتاق بسته است. راه درست، اندازه‌گیری متریک شرکت‌کننده به تفکیک شنونده و میکروفون و ویدیو، و بالا بردن پله‌پله تعداد نفرات در جلسه‌های واقعی است.

نه. فعالیت BigBlueButton همراه خود مودل عرضه می‌شود؛ کافی است فعال باشد و نشانی سرور و سکرت API را در تنظیماتش وارد کنید. برای سامانه‌های دیگر، چارچوب LTI همان نقش را دارد.

منبع بسته‌ها را عوض کنید: گزینه مخزن apt جایگزین، گزینه سرور کش بسته‌ها، میرور داخلی اوبونتو و میرور رجیستری برای ایمیج‌های Docker. این راه از دست بردن در مسیر ترافیک سرور پایدارتر است.

جمع‌بندی؛ تصمیم درست قبل از اولین دستور گرفته می‌شود
نصب BigBlueButton از نظر اجرای دستور کار سختی نیست؛ یک اسکریپت رسمی، یک نام دامنه و یک ایمیل، کار را تا یک کلاس قابل استفاده پیش می‌برد. دشواری در باریک بودن مسیر پشتیبانی‌شده است: فقط اوبونتو 24.04 روی x86_64، سروری تازه و اختصاصی، پورت 80 و 443 آزاد، بازه UDP باز و یک گواهی معتبر. چهار گیت هم نصب را سر جایش قطع می‌کنند: کمتر از ۴ هسته، رم زیر حدود ۴ گیگابایت، نبود IPv6 در کرنل و SSH روی پورتی غیر از 22. دو مورد آخر برای سرورهای ایرانی رایج‌ترند و در بیشتر راهنماها نیامده‌اند. درباره ظرفیت به هیچ عدد تبلیغاتی اعتماد نکنید؛ پروژه عددی نداده، چون بار اتاق صد نفره شنونده با اتاق سی نفره پر از وبکم یکی نیست. ترکیب کلاس خودتان را با متریک شرکت‌کننده‌ها اندازه بگیرید و اگر یک سرور کم آورد، سراغ معماری چندسروری بروید. ترتیب کار همان ترتیب روز اول است: دامنه و رکورد DNS، سرور تازه، اجرای اسکریپت با دسترسی root و بعد یک کلاس آزمایشی.

🚀 سرور کلاس آنلاین خودتان

سرور مجازی ایران وب‌داده در دیتاسنتر تهران و روی شبکه رسپینا میزبانی می‌شود و نصب ISO دلخواه و اسنپ‌شات و بازگردانی از پنل در دسترس است. با تست ساعتی رایگان می‌توانید ظرفیت را بسنجید؛ فعال‌سازی به احراز هویت نیاز دارد و استفاده از سرور برای VPN، پروکسی، پورت‌فورواردینگ و کاهش پینگ مجاز نیست.

اگر سوالی داشتید، در بخش نظرات با ما در ارتباط باشید.

وب داده
وب داده

جدید ترین مطالب آموزشی و کاربردی را در اینجا بخوانید !
ما با بهره‌گیری از دانش روز و تجربه متخصصان حوزه فناوری، مجموعه‌ای از آموزش‌های کاربردی و مقالات تخصصی را گردآوری کرده‌ایم که هر یک، پاسخی دقیق به پرسش‌های شماست. ؛ از مفاهیم پایه تا پیچیده‌ترین تکنیک‌های حرفه‌ای. اینجا، دانش با زبانی ساده اما عمیق در اختیار شما قرار می‌گیرد.

مقاله‌ها: 242
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *