مرجع کامل برای رابط خط فرمان bedrud.
خلاصه
# سبک زیردستور
bedrud <command> [flags]
# سبک فلگ
bedrud --livekit --config <path>
bedrud --run --config <path>دستورات
run / server
سرور جلسه بدرود را با API، فرانتاند وب جاسازیشده، و 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)، self-signed TLS، TLS دستی، یا HTTP ساده پشتیبانی میکند
- خاموش شدن ملایم در SIGTERM/SIGINT
پیادهسازی: server/internal/server/server.go
--livekit
فقط media server 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 | تولید self-signed TLS certificate |
--no-tls | false | غیرفعال کردن TLS به طور کامل (HTTP ساده). بر --tls و --self-signed غلبه میکند |
--ip | تشخیص خودکار | جایگزینی آدرس IP سرور تشخیص داده شده |
--domain | "" | نام دامنه برای Let’s Encrypt یا self-signed certificate |
--email | "" | ایمیل برای ثبتنام Let’s Encrypt |
--port | "443" (TLS) / "8090" (HTTP) | جایگزینی پورت شنیدن |
--cert | "" | مسیر به فایل گواهی موجود (PEM) |
--key | "" | مسیر به فایل کلید خصوصی موجود (PEM) |
--lk-port | "7880" | جایگزینی پورت API/WebSocket LiveKit |
--lk-tcp-port | "7881" | جایگزینی پورت TCP RTC LiveKit |
--lk-udp-port | "7882" | جایگزینی پورت UDP RTC LiveKit |
--fresh | false | حذف نصب موجود قبل از نصب |
--behind-proxy | false | سرور پشت CDN/reverse proxy است (Cloudflare، nginx) |
--external-livekit | "" | URL یک سرور 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 تولید میکند
۶. تنظیمات media server LiveKit را در /etc/bedrud/livekit.yaml تولید میکند
۷. self-signed certificates را در /etc/bedrud/cert.pem + /etc/bedrud/key.pem تولید میکند (اگر TLS فعال است و گواهی سفارشی وجود ندارد)
۸. init سرویس LiveKit را ایجاد میکند (مگر اینکه از LiveKit خارجی استفاده کنید)
۹. init سرویس Bedrud را ایجاد میکند
۱۰. سرویسها را از طریق سیستم init تشخیصدادهشده فعال و راهاندازی میکند
۱۱. URLهای دسترسی را چاپ میکند
گزینههای TLS:
--domain+--email→ ACME (Let’s Encrypt)--self-signedیا--tls→ self-signed certificate--cert+--key→ گواهیهای سفارشی--no-tls→ فقط HTTP ساده
توپولوژی LiveKit:
- پیشفرض (جاسازیشده): LiveKit به صورت محلی اجرا میشود، از طریق بدرود در
/livekitپروکسی میشود --livekit-domain: LiveKit به صورت محلی اجرا میشود اما کلاینتها مستقیماً از طریق دامنه خود متصل میشوند--external-livekit: بدون LiveKit محلی؛ به سرور راه دور متصل میشود
پیادهسازی: server/internal/install/linux.go
اسناد مرتبط: راهنمای نصب • راهنمای استقرار • منطق استقرار بکاند
uninstall
بدرود را از سیستم حذف کنید.
bedrud uninstallحذف میکند:
- سرویسها را در تمام سیستمهای init متوقف و غیرفعال میکند:
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. برای ایجاد superadmin در یک دستور از --admin استفاده کنید.
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
cert
مدیریت گواهیهای TLS. فقط زمانی مرتبط است که از گواهیهای self-signed استفاده میکنید (تولید شده توسط bedrud install --self-signed).
bedrud cert [--config <path>] <subcommand>| پرچم سراسری | پیشفرض | توضیحات |
|---|---|---|
--config | /etc/bedrud/config.yaml | مسیر فایل پیکربندی Bedrud |
--algo | "" | الگوریتم کلید: ed25519, ecdsa256, rsa2048, rsa4096 (پیشفرض: تشخیص از گواهی موجود) |
renew
تمدید دستی گواهی self-signed TLS. الگوریتم کلید گواهی موجود را تشخیص داده و با همان نوع بازتولید میکند (پیشفرض: Ed25519). گواهی جدید به مدت ۱۸۲۵ روز (~۵ سال) معتبر است.
bedrud cert renew [--config <path>]سرور همچنین بهطور خودکار روزانه گواهی را از طریق زمانبند داخلی خود تمدید میکند زمانی که کمتر از ۳۰ روز تا انقضا باقی مانده باشد. این دستور برای تمدید دستی یا فوقالعاده است.
SANها: از پیکربندی سرور استخراج میشوند — domain (اگر تنظیم شده باشد)، به همراه localhost، 127.0.0.1 و ::1.
پیادهسازی: server/internal/utils/tls.go (RenewSelfSignedCert)
info
نمایش فرادادههای گواهی TLS در stdout.
bedrud cert info [--config <path>]فیلدهای خروجی: subject، issuer، notBefore، notAfter، daysRemaining، status (valid/expiring/error)، SANها.
پیادهسازی: server/internal/utils/tls.go (ValidateTLSCertPair)
help
پیام استفاده را با تمام دستورات و فلگها نشان دهید.
bedrud helpهمچنین هنگامی که هیچ آرگومانی ارائه نشده است فعال میشود. خروجی printUsage() را نمایش میدهد.
مثالها
شروع سرور توسعه پایه
# اجرا با config.yaml پیشفرض در دایرکتوری فعلی
bedrud run
# اجرا با تنظیمات سفارشی
bedrud run --config /path/to/config.yaml
# از طریق متغیر محیطی (فallback)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud runنصب تعاملی (درخواست برای ورودی)
bedrud installنصب غیرتعاملی با Let’s Encrypt
bedrud install --domain example.com --email admin@example.comself-signed 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مستندات مرتبط
- راهنمای نصب - راهنمای دقیق
bedrud install، توپولوژیهای TLS، مراحل پس از نصب - مرجع پیکربندی - ساختار فایل تنظیمات سرور و LiveKit
- منطق استقرار بکاند - نحوه کار
installوuninstallبه صورت داخلی - راهنمای استقرار - گزینههای کامل استقرار شامل init سرویسها