المرجع الكامل لواجهة سطر الأوامر 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]| العلامة | الافتراضي | الوصف |
|---|---|---|
--tls | false | تفعيل HTTPS (مثل --self-signed) |
--self-signed | false | توليد شهادة TLS موقّعة ذاتياً |
--no-tls | false | تعطيل 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 |
--fresh | false | إزالة التثبيت الموجود قبل التثبيت |
--behind-proxy | false | الخادم خلف 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>]| العلامة | الإفتراضي | الوصف |
|---|---|---|
--role | superadmin | الدور المستهدف: 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>]| العلامة | الإفتراضي | الوصف |
|---|---|---|
--role | superadmin | الدور المراد إزالته: 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.comTLS موقّع ذاتياً مع منافذ مخصصة
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وثائق ذات صلة
- دليل التثبيت - شرح مفصّل لـ
bedrud install، طوبولوجيات TLS، خطوات ما بعد التثبيت - مرجع التهيئة - بنية ملف تهيئة الخادم و LiveKit
- منطق نشر الخلفية - كيف يعمل
installوuninstallداخلياً - دليل النشر - خيارات النشر الكاملة بما في ذلك خدمات نظام التهيئة