Skip to content

پنل مدیریت

پنل مدیریت یک رابط مبتنی بر وب برای مدیریت کاربران، چت‌ها، تنظیمات زمان اجرا و عملیات سیستم فراهم می‌کند. برای کاربران با نقش مالک (owner) یا مدیر (admin) قابل دسترسی است.

نقش‌های کاربر

  • Owner (مالک): دسترسی کامل به پنل مدیریت و همه قابلیت‌ها
  • Admin (مدیر): دسترسی محدود به پنل مدیریت
  • User (کاربر): کاربر عادی بدون دسترسی مدیریتی

WARNING

فقط یک کاربر با نقش مالک می‌تواند وجود داشته باشد.

دسترسی به پنل مدیریت

  1. یک کاربر ایجاد یا ویرایش کنید و نقش مالک یا مدیر به آن‌ها بدهید (در نصب جدید درخواست می‌شود، یا بعداً از طریق اسکریپت نصب):
bash
songbird-deploy
# به زیرمنوی "Manage Database" بروید
# "Create user" یا "Edit user" را انتخاب کنید
# دستورات را دنبال کرده و نقش "owner" یا "admin" را انتخاب کنید

اگر ترجیح می‌دهید می‌توانید از دستورات دیتابیس نیز استفاده کنید:

bash
cd /opt/songbird/server
# اگر می‌خواهید کاربر جدید ایجاد کنید
npm run db:user:create
# یا اگر می‌خواهید کاربری را ارتقا دهید
npm run db:user:edit
# دستورات را دنبال کرده و نقش "owner" یا "admin" را انتخاب کنید
  1. با حساب ارتقا‌یافته به برنامه Songbird خود وارد شوید

  2. روی دکمه Admin Panel در نوار کناری کلیک کنید (فقط برای مالک و مدیران قابل دسترسی است)

تب داشبورد

داشبورد یک نمای کلی از برنامه Songbird شما ارائه می‌دهد:

  • آمار: کل کاربران، چت‌ها، پیام‌ها و فایل‌های آپلودشده
  • اطلاعات سیستم: زمان فعالیت و محیط
  • فضای ذخیره‌سازی: اندازه دیتابیس و دایرکتوری آپلود

تب کاربران

همه کاربران در برنامه Songbird خود را مدیریت کنید:

قابلیت‌ها

  • مشاهده همه کاربران: لیست با مرتب‌سازی و فیلتر (محدودیت 1000 ردیف)
  • ایجاد کاربران: ایجاد حساب‌های جدید با نام کاربری، نام مستعار، رمز عبور
  • ویرایش کاربران:
    • به‌روزرسانی نام کاربری، نام مستعار، آواتار
    • بازنشانی رمز عبور به‌صورت درون‌خطی
    • تغییر نقش کاربر (admin/user)
    • مسدود/رفع مسدودیت کاربران
  • حذف کاربران: حذف دائمی حساب‌های کاربری
  • جستجو و فیلتر: یافتن کاربران بر اساس نام کاربری یا نام مستعار
  • مرتب‌سازی: مرتب‌سازی بر اساس نام کاربری، نام مستعار، تاریخ ایجاد یا آخرین بازدید

تب چت‌ها

مدیریت پیام‌های مستقیم، گروه‌ها و کانال‌ها:

قابلیت‌ها

  • مشاهده همه چت‌ها: لیست با نوع، اعضا و تاریخ ایجاد
  • ایجاد چت‌ها: ایجاد گروه یا کانال جدید
  • ویرایش چت‌ها: به‌روزرسانی متادیتا و مالکیت چت
  • حذف چت‌ها: حذف دائمی چت‌ها و همه پیام‌ها
  • جستجو و فیلتر: یافتن چت‌ها بر اساس نام، نام کاربری یا نوع
  • مدیریت اعضا: مشاهده و تغییر عضویت چت

تب تنظیمات

پیکربندی تنظیمات زمان اجرا از طریق رابط کاربری (جایگزین اکثر متغیرهای .env):

دسته‌ها

عمومی

  • لاگ اشکال‌زدایی
  • ثبت‌نام (سرور عمومی)

آپلود فایل

  • قابلیت آپلود فایل فعال شده
  • حداکثر اندازه فایل در هر آپلود
  • حداکثر اندازه کل در هر پیام
  • حداکثر فایل در هر پیام
  • ترنسکد ویدئو فعال شده

نگهداری پیام

  • دوره نگهداری فایل (روز)
  • دوره نگهداری پیام متنی (روز)

محدودیت‌ها

  • حداکثر طول پیام (کاراکتر)
  • حداکثر طول نام کاربری
  • حداکثر طول نام مستعار

رفتار کلاینت

  • محدودیت‌های دریافت پیام
  • اندازه صفحه پیام
  • TTL کش

Push Notifications

  • نشانی پراکسی برای تحویل push

کانال ریموت

  • قابلیت کانال ریموت فعال شده
  • اجازه تغییر در رابط کاربری برای مالکان کانال
  • اجازه گزینه استریم رسانه
  • پیکربندی polling و صف
  • نشانی‌های پراکسی برای تلگرام و Songbird

لغو توسط متغیرهای محیطی

متغیرهای محیطی در .env بر تنظیمات دیتابیس اولویت دارند. فیلدهای قفل‌شده نشان‌دهنده لغو فعال توسط env هستند.

تب لاگ‌ها

مشاهده لاگ‌های ممیزی و لاگ‌های سیستم:

لاگ‌های ممیزی

لاگ‌های مبتنی بر فایل از اقدامات مدیریتی:

  • عملیات CRUD کاربر
  • عملیات CRUD چت
  • تغییرات تنظیمات
  • اقدامات سیستم

هر ورودی شامل:

  • برچسب زمانی
  • Actor (چه کسی اقدام را انجام داده)
  • نوع اقدام و توضیحات
  • موجودیت‌های تحت‌تأثیر

لاگ‌های سیستم

لاگ‌های جمع‌آوری‌شده از چند منبع:

  • ژورنال Systemd (اگر از طریق systemd اجرا شود)
  • فایل‌های لاگ مستقیم

تب اقدامات

انجام وظایف مدیریت سیستم:

عملیات دیتابیس

پشتیبان‌گیری

  • دانلود یک پشتیبان با برچسب زمانی از دیتابیس

بازیابی

  • آپلود و بازیابی از یک فایل پشتیبان

Vacuum

  • بهینه‌سازی فایل دیتابیس (عملیات VACUUM)
  • بازیابی فضای استفاده‌نشده
  • به‌صورت دوره‌ای برای دیتابیس‌های بزرگ توصیه می‌شود

کنترل سیستم

بررسی نسخه

  • بررسی نسخه نصب‌شده فعلی
  • مقایسه با آخرین نسخه GitHub
  • بررسی در دسترس بودن به‌روزرسانی

ریستارت سرویس

  • ریستارت سرور Songbird
  • اعمال تغییرات در انتظار
  • اتصال مجدد همه کلاینت‌ها

توقف سرویس

  • توقف نرم سرور Songbird
  • نیاز به شروع دستی از طریق systemd/Docker

نیازمندی‌های مجوز

کنترل سرویس (ریستارت/توقف) بسته به نوع استقرار به راه‌اندازی مناسب نیاز دارد:

  • Docker: کانتینر songbird باید سوکت Docker را mount کرده باشد (/var/run/docker.sock). این در docker-compose.yaml پیش‌فرض گنجانده شده است. متغیر محیطی SONGBIRD_CONTAINER_NAME به اپلیکیشن می‌گوید کدام کانتینر را هدف قرار دهد (پیش‌فرض: songbird). به نصب از طریق Docker مراجعه کنید.
  • Systemd: کاربر سرویس باید مجوزهای sudo برای systemctl داشته باشد. به عیب‌یابی مراجعه کنید.

منطقه خطرناک

پاک‌کردن همه پیام‌ها

  • حذف همه پیام‌ها از همه چت‌ها
  • ساختار چت و عضویت حفظ می‌شود
  • حساب‌های کاربری حفظ می‌شوند
  • عملیات غیرقابل‌بازگشت

بازنشانی دیتابیس

  • حذف کل دیتابیس و همه داده‌ها
  • حذف همه کاربران، چت‌ها و پیام‌ها
  • فایل‌های آپلودشده حفظ می‌شوند (نیاز به پاکسازی دستی)
  • عملیات غیرقابل‌بازگشت
  • نیاز به ریستارت سرویس

اقدامات غیرقابل‌بازگشت

اقدامات منطقه خطرناک قابل بازگشت نیستند. همیشه قبل از ادامه یک پشتیبان ایجاد کنید.

نکات امنیتی

  • API مدیریت از یک توکن احراز هویت جداگانه استفاده می‌کند (ADMIN_API_TOKEN)
  • در اولین اجرا به‌صورت خودکار تولید و در .env ذخیره می‌شود
  • نقاط پایانی مدیریت به‌طور پیش‌فرض فقط localhost هستند
  • همه اقدامات مدیریتی برای ردیابی ممیزی ثبت می‌شوند
  • محدودیت نرخ اعمال می‌شود (1000 req/15min از نسخه v0.11.1)

جایگزین CLI

اکثر عملیات مدیریتی هنوز می‌توانند از طریق CLI انجام شوند:

bash
cd /opt/songbird/server

# مدیریت کاربر
npm run db:user:create
npm run db:user:edit
npm run db:user:delete
npm run db:user:ban

# مدیریت چت
npm run db:chat:create
npm run db:chat:edit
npm run db:chat:delete

# عملیات دیتابیس
npm run db:backup
npm run db:restore
npm run db:vacuum
npm run db:inspect

برای مرجع کامل CLI، دستورات دیتابیس را ببینید.

تحت لایسنس MIT منتشر شده است.