Bedrud التوثيق

المرجع الكامل لواجهة سطر الأوامر bedrud.

الموجز

# نمط الأوامر الفرعية
bedrud <command> [flags]
 
# نمط العلامات
bedrud --livekit --config <path>
bedrud --run --config <path>

الأوامر

run / server

ابدأ خادم اجتماعات بدرود مع واجهة برمجة التطبيقات، واجهة الويب الأمامية المدمجة، و LiveKit المدمج (إذا كان مهيّأً).

bedrud run    [--config <path>]
bedrud server [--config <path>]
العلامةالافتراضيالوصف
--configمتغير البيئة $CONFIG_PATH"config.yaml"مسار ملف تهيئة YAML لبدرود

السلوك:

  • يحمّل التهيئة من المسار المحدد أو الافتراضيات
  • يبدأ LiveKit المدمج إذا كان مهيّأً للوضع الداخلي
  • يهيّئ قاعدة بيانات SQLite/PostgreSQL ويشغّل عمليات الترحيل
  • ينشئ خادم HTTP Fiber مع جميع مسارات API
  • يقدّم واجهة React الأمامية المدمجة
  • يدعم ACME (Let’s Encrypt)، TLS الموقّع ذاتياً، TLS اليدوي، أو HTTP عادي
  • إيقاف سلس عند SIGTERM/SIGINT

التنفيذ: server/internal/server/server.go


--livekit

ابدأ خادم وسائط LiveKit المدمج فقط. يستخرج الملف الثنائي من Go embed إلى دليل مؤقت.

bedrud --livekit --config <path>
العلامةالافتراضيالوصف
--config(مطلوب)مسار ملف تهيئة YAML لـ LiveKit

يُستخدم من قبل: خدمة init livekit التي ينشئها bedrud install

التنفيذ: server/internal/livekit/server.go


--run

اسم مستعار لـ bedrud run بنفس سلوك علامة --config. يُستخدم من قبل خدمة init bedrud.

bedrud --run --config <path>

install

ثبّت بدرود على نظام Debian/Linux. ينشئ خدمات init (systemd أو OpenRC أو SysV init — كشف تلقائي) وملفات التهيئة والأدلة وشهادات TLS.

bedrud install [flags]
العلامةالافتراضيالوصف
--tlsfalseتفعيل HTTPS (مثل --self-signed)
--self-signedfalseتوليد شهادة TLS موقّعة ذاتياً
--no-tlsfalseتعطيل TLS بالكامل (HTTP عادي). يتجاوز --tls و --self-signed
--ipمُكتشف تلقائياًتجاوز عنوان IP للخادم المكتشف تلقائياً
--domain""اسم النطاق لـ Let’s Encrypt أو شهادة موقّعة ذاتياً
--email""البريد الإلكتروني لتسجيل Let’s Encrypt
--port"443" (TLS) / "8090" (HTTP)تجاوز منفذ الاستماع
--cert""مسار ملف شهادة PEM موجودة
--key""مسار ملف مفتاح PEM الخاص الموجود
--lk-port"7880"تجاوز منفذ API/WebSocket لـ LiveKit
--lk-tcp-port"7881"تجاوز منفذ RTC TCP لـ LiveKit
--lk-udp-port"7882"تجاوز منفذ RTC UDP لـ LiveKit
--freshfalseإزالة التثبيت الموجود قبل التثبيت
--behind-proxyfalseالخادم خلف CDN/بروكسي عكسي (Cloudflare، nginx)
--external-livekit""رابط خادم LiveKit خارجي تماماً (جهاز مختلف)
--livekit-domain""نطاق منفصل لخادم LiveKit المحلي (يتجاوز CDN)

ما يفعله: ١. يوقف ويزيل التثبيت السابق إذا كانت --fresh ٢. يطلب IP، النطاق، البريد الإلكتروني، وضع TLS (إذا كان غير تفاعلي ولم تُقدّم العلامات) ٣. ينشئ الأدلة: /etc/bedrud، /var/lib/bedrud، /var/lib/bedrud/certs، /var/log/bedrud ٤. ينسخ الملف الثنائي إلى /usr/local/bin/bedrud ٥. يولّد تهيئة خادم بدرود في /etc/bedrud/config.yaml ٦. يولّد تهيئة خادم وسائط LiveKit في /etc/bedrud/livekit.yaml ٧. يولّد شهادات موقّعة ذاتياً في /etc/bedrud/cert.pem + /etc/bedrud/key.pem (إذا كان TLS مُفعّلاً ولا توجد شهادات مخصصة) ٨. ينشئ خدمة init لـ LiveKit (إلا إذا كنت تستخدم LiveKit خارجي) ٩. ينشئ خدمة init لـ Bedrud ١٠. يُفعّل ويبدأ الخدمات عبر نظام التهيئة المكتشف ١١. يطبع روابط الوصول

خيارات TLS:

  • --domain + --email ← ACME (Let’s Encrypt)
  • --self-signed أو --tls ← شهادة موقّعة ذاتياً
  • --cert + --key ← شهادات مخصصة
  • --no-tls ← HTTP عادي فقط

طوبولوجيا LiveKit:

  • الافتراضي (مدمج): يعمل LiveKit محلياً، موجه عبر بدرود في /livekit
  • --livekit-domain: يعمل LiveKit محلياً لكن العملاء يتصلون مباشرة عبر نطاقه الخاص
  • --external-livekit: بدون LiveKit محلي؛ يتصل بخادم بعيد

التنفيذ: server/internal/install/linux.go

وثائق ذات صلة: دليل التثبيتدليل النشرمنطق نشر الخلفية


uninstall

أزِل بدرود من النظام.

bedrud uninstall

يزيل:

  • يوقف ويعطّل الخدمات عبر جميع أنظمة التهيئة: bedrud، livekit
  • يزيل ملفات خدمة systemd وOpenRC وSysV init
  • يزيل الملف الثنائي: /usr/local/bin/bedrud، /tmp/bedrud، /tmp/bedrud-livekit-server
  • يزيل الأدلة: /etc/bedrud، /var/lib/bedrud، /var/log/bedrud
  • يزيل مستخدم النظام: bedrud

التنفيذ: server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)

وثائق ذات صلة: دليل التثبيت - إزالة التثبيت


user

إدارة المستخدمين في قاعدة بيانات بدرود.

bedrud user [--config <path>] <subcommand> [flags]
العلامة العامةالافتراضيالوصف
--config/etc/bedrud/config.yamlمسار ملف تهيئة بدرود (لتحديد موقع قاعدة البيانات)

create

أنشئ مستخدماً جديداً بمصادقة محلية (كلمة مرور مشفّرة بـ bcrypt).

bedrud user [--config <path>] create --email <email> --password <password> --name <name> [--admin]

العلامات المطلوبة:

  • --email: عنوان البريد الإلكتروني للمستخدم
  • --password: كلمة مرور المستخدم، تُشفّر بـ bcrypt قبل التخزين
  • --name: اسم العرض للمستخدم

العلامات الاختيارية:

  • --admin: إنشاء المستخدم كـ superadmin

مستوى الوصول: user افتراضياً. استخدم --admin لإنشاء superadmin بأمر واحد.

delete

احذف مستخدماً بعنوان البريد الإلكتروني.

bedrud user [--config <path>] delete --email <email>

promote

تعيين دور المستخدم عن طريق استبدال مصفوفة الصلاحيات. الإفتراضي: superadmin.

bedrud user [--config <path>] promote --email <email> [--role <role>]
العلامةالإفتراضيالوصف
--rolesuperadminالدور المستهدف: superadmin, admin, moderator, user, guest

أمثلة:

# منح صلاحيات superadmin (الإفتراضي)
bedrud user promote --email admin@example.com
 
# منح صلاحيات admin
bedrud user promote --email admin@example.com --role admin
 
# منح صلاحيات moderator
bedrud user promote --email mod@example.com --role moderator

كل دور يتوافق مع مصفوفة صلاحيات محددة:

  • superadmin['superadmin', 'user']
  • admin['admin', 'user']
  • moderator['moderator', 'user']
  • user['user']
  • guest['guest']

demote

إزالة دور معين من مستخدم. الإفتراضي: superadmin.

bedrud user [--config <path>] demote --email <email> [--role <role>]
العلامةالإفتراضيالوصف
--rolesuperadminالدور المراد إزالته: superadmin, admin, moderator

إذا لم تبقى أي أدوار بعد الإزالة، يتم إضافة صلاحية user تلقائياً.

التنفيذ: server/internal/usercli/usercli.go


help

اعرض رسالة الاستخدام مع جميع الأوامر والعلامات.

bedrud help

يُفعّل أيضاً عند عدم تقديم أي وسائط. يعرض خرج printUsage().


أمثلة

بدء خادم تطوير أساسي

# تشغيل بتهيئة config.yaml الافتراضية في الدليل الحالي
bedrud run
 
# تشغيل بتهيئة مخصصة
bedrud run --config /path/to/config.yaml
 
# عبر متغير بيئة (احتياطي)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud run

تثبيت تفاعلي (يطلب المدخلات)

bedrud install

تثبيت غير تفاعلي مع Let’s Encrypt

bedrud install --domain example.com --email admin@example.com

TLS موقّع ذاتياً مع منافذ مخصصة

bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882

خلف CDN مع نطاق LiveKit منفصل

bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxy

إعادة تثبيت نظيف

bedrud install --fresh --domain example.com --email admin@example.com

إدارة المستخدمين

# إنشاء أول مستخدم مدير (أمر واحد)
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User" --admin
 
# أو إنشاء مستخدم عادي ثم ترقيته
bedrud user [--config <path>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <path>] promote --email admin@example.com
 
# إنشاء مستخدم عادي
bedrud user [--config <path>] create --email user@example.com --password pass456 --name "Regular User"
 
# حذف مستخدم
bedrud user [--config <path>] delete --email user@example.com
 
# إزالة وصول المدير
bedrud user [--config <path>] demote --email admin@example.com

وثائق ذات صلة