Bedrud التوثيق

يشرح هذا الدليل كيفية نشر Bedrud على خادم إنتاج.

خيارات النشر

الطريقةالأفضل لـ
مدير الحزم (apt/AUR)تثبيت مُدار على توزيعات Linux المدعومة
CLI آليإعداد بعيد سريع
تثبيت يدويتحكم كامل في الإعدادات
Dockerالبيئات الحاوية
وضع الجهاز الجاهزإعداد شامل بملف ثنائي واحد

مدير الحزم

ثبّت Bedrud على Debian/Ubuntu أو Arch Linux باستخدام مدير الحزم الأصلي. هذه هي الطريقة الموصى بها لعمليات نشر الخادم المستمرة حيث تريد تحديثات تلقائية عبر 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 خادم الوسائط

إدارة الخدمات

# Check status
systemctl status bedrud livekit
 
# Restart
systemctl restart bedrud
 
# View logs
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سطح المكتب - أرشيف محمول لـ 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 (تصحيح + إصدار، لكل بُنية)بنيات عميل Android
iOS IPA (اختياري، يتطلب توقيعًا)أرشيف عميل iOS

جميع المُنتَجات تُرفق بإصدار GitHub.

بنيات ليلية

يُنتج سير عمل dev-nightly.yml بنيات تطوير وفق جدول زمني.

فحوصات CI

كل دفع إلى main وكل طلب سحب يُشغّل:

الفحصالمنصة
go vet + البناء + الاختباراتubuntu-latest (Go 1.24)
فحص الأنواع + البناءubuntu-latest (Bun)
الفحص + اختبارات الوحدةubuntu-latest (JDK 17)
البناء + الاختبارmacos-15 (Xcode)