Bedrud مستندات

این راهنما نحوه استقرار Bedrud در یک سرور تولید را توضیح می‌دهد.

گزینه‌های استقرار

روشبهترین برای
مدیریت بسته (apt/AUR)نصب مدیریت‌شده در توزیع‌های Linux پشتیبانی‌شده
CLI خودکارراه‌اندازی سریع از راه دور
نصب دستیکنترل کامل بر پیکربندی
Dockerمحیط‌های کانتینری
حالت applianceتنظیمات همه‌کاره تک‌باینری

مدیریت بسته

Bedrud را در Debian/Ubuntu یا Arch Linux با استفاده از package manager بومی نصب کنید. این روش برای استقرارهای سرور مداوم که می‌خواهید به‌روزرسانی‌های خودکار از طریق apt upgrade یا AUR داشته باشید، توصیه می‌شود.

به راهنمای نصب بسته برای دستورالعمل‌های کامل، از جمله افزودن کلید GPG apt و مخزن ببینید.

# Ubuntu / Debian
sudo apt install bedrud
 
# Arch Linux (AUR)
yay -S bedrud-bin

پس از نصب، نصب‌کننده تعاملی را برای پیکربندی TLS، سرویس‌های systemd و دیتابیس اجرا کنید:

sudo bedrud install

استقرار CLI خودکار

سریع‌ترین راه استقرار. از ماشین محلی خود اجرا کنید:

پیش‌نیازها: Python 3.10+، uv، و دسترسی SSH به سرور هدف.

cd tools/cli
uv run python bedrud.py --auto-config \
  --ip <server-ip> \
  --user root \
  --auth-key ~/.ssh/id_rsa \
  --domain meet.example.com \
  --acme-email admin@example.com

این کار انجام می‌دهد:

۱. ساخت باینری بک‌اند به صورت محلی ۲. فشرده‌سازی و آپلود از طریق rsync ۳. پاک کردن سرورهای وب متضاد ۴. پیکربندی فایروال ۵. نصب و شروع سرویس‌ها روی سرور

گزینه‌های CLI

فلگتوضیحات
--ipآدرس IP سرور
--userکاربر SSH (پیش‌فرض: root)
--auth-keyمسیر به کلید خصوصی SSH
--domainنام دامنه برای Let’s Encrypt
--acme-emailایمیل برای Let’s Encrypt
--uninstallحذف Bedrud از سرور

نصب دستی

۱. ساخت باینری

make build-dist

این dist/bedrud_linux_amd64.tar.xz تولید می‌کند.

۲. آپلود به سرور

scp dist/bedrud_linux_amd64.tar.xz root@server:/tmp/
ssh root@server "cd /tmp && tar xf bedrud_linux_amd64.tar.xz"

۳. نصب

ssh root@server
sudo /tmp/bedrud install --tls --domain meet.example.com --email admin@example.com

به راهنمای نصب برای تمام سناریوهای نصب ببینید.

۴. ایجاد کاربر مدیر

ارتقای کاربر به مدیر

از طریق رابط وب در آدرس سرورتان ثبت‌نام کنید، سپس کاربر را به مدیر ارتقا دهید:

			
sudo ./bedrud user promote --email admin@example.com
		

استقرار Docker

ساخت و اجرا با Docker:

docker build -t bedrud .
docker run -d --name bedrud -p 8090:8090 -p 7880:7880 -v bedrud-data:/var/lib/bedrud bedrud

تصویر از پیش ساخته‌شده نیز موجود است:

docker pull ghcr.io/bedrud-ir/bedrud:latest

به راهنمای Docker برای جزئیات کامل شامل حجم‌ها، پیکربندی و Docker Compose ببینید.


معماری تولید

flowchart TB
    NET[Internet] --> TRAEFIK["Traefik (443)<br/>TLS termination, reverse proxy"]
    TRAEFIK --> BEDRUD["Bedrud (8090)<br/>API + Web UI"]
    TRAEFIK --> LIVEKIT["LiveKit (7880)<br/>WebRTC media"]
    BEDRUD --> DB["SQLite<br/>(or PostgreSQL)"]

برای اتصال WebRTC، این پورت‌ها را نیز روی فایروال باز کنید:

پورتپروتکلهدف
3478UDPTURN/UDP + STUN
5349TCPTURN/TLS (یا از 443 استفاده کنید)
7881TCPبازگشت ICE/TCP
50000-60000UDPجریان‌های رسانه RTC

به اتصال WebRTC برای پشته اتصال کامل ببینید.

سرویس‌های Systemd

نصب‌کننده دو سرویس systemd ایجاد می‌کند:

سرویس دستور هدف
bedrud.service bedrud --run --config /etc/bedrud/config.yaml API + وب
livekit.service bedrud --livekit --config /etc/bedrud/livekit.yaml سرور رسانه

مدیریت سرویس‌ها

# بررسی وضعیت
systemctl status bedrud livekit
 
# restart
systemctl restart bedrud
 
# مشاهده لاگ‌ها
journalctl -u bedrud -f
tail -f /var/log/bedrud/bedrud.log

مکان‌های فایل (تولید)

مسیرمحتوا
/usr/local/bin/bedrudباینری
/etc/bedrud/config.yamlپیکربندی سرور
/etc/bedrud/livekit.yamlپیکربندی LiveKit
/var/lib/bedrud/bedrud.dbدیتابیس SQLite
/var/log/bedrud/bedrud.logلاگ‌های برنامه

CI/CD

خط تولید انتشار

گردش کار release.yml بر روی تگ‌های نسخه (v*) فعال می‌شود و تولید می‌کند:

مصنوعتوضیحات
bedrud_linux_amd64.tar.xz / bedrud_linux_arm64.tar.xzباینری‌های سرور (Linux x86_64 / ARM64)
bedrud_amd64.deb / bedrud_arm64.debبسته‌های Debian/Ubuntu (سرور)
تصویر Docker (ghcr.io/bedrud-ir/bedrud)تصویر کانتینر چندمعماری فشرده شده به GHCR
bedrud-desktop-linux-x86_64.AppImageدسکتاپ - AppImage Linux جهانی
bedrud-desktop-linux-x86_64.debدسکتاپ - بسته Debian/Ubuntu
bedrud-desktop-linux-x86_64.tar.xzدسکتاپ - tarball قابل حمل Linux
bedrud-desktop-windows-x86_64-setup.exe / -arm64-setup.exeدسکتاپ - نصب‌کننده NSIS Windows
bedrud-desktop-windows-x86_64.zip / -arm64.zipدسکتاپ - قابل حمل Windows
bedrud-desktop-macos-x86_64.tar.gz / -arm64.tar.gzدسکتاپ - قابل حمل macOS (امضانشده)
Android APK (debug + release, per-arch)ساخت‌های کلاینت Android
iOS IPA (اختیاری، نیاز به امضا)بایگانی کلاینت iOS

همه مصنوعات به انتشار GitHub متصل می‌شوند.

ساخت‌های شبانه

گردش کار dev-nightly.yml ساخت‌های توسعه را به صورت زمان‌بندی‌شده تولید می‌کند.

بررسی‌های CI

هر push به main و هر درخواست pull اجرا می‌کند:

بررسیپلتفرم
go vet + build + testsubuntu-latest (Go 1.24)
Type check + buildubuntu-latest (Bun)
Lint + unit testsubuntu-latest (JDK 17)
Build + testmacos-15 (Xcode)