پنل مدیریت
پنل مدیریت یک رابط مبتنی بر وب برای مدیریت کاربران، چتها، تنظیمات زمان اجرا و عملیات سیستم فراهم میکند. برای کاربران با نقش مالک (owner) یا مدیر (admin) قابل دسترسی است.
نقشهای کاربر
- Owner (مالک): دسترسی کامل به پنل مدیریت و همه قابلیتها
- Admin (مدیر): دسترسی محدود به پنل مدیریت
- User (کاربر): کاربر عادی بدون دسترسی مدیریتی
WARNING
فقط یک کاربر با نقش مالک میتواند وجود داشته باشد.
دسترسی به پنل مدیریت
- یک کاربر ایجاد یا ویرایش کنید و نقش مالک یا مدیر به آنها بدهید (در نصب جدید درخواست میشود، یا بعداً از طریق اسکریپت نصب):
songbird-deploy
# به زیرمنوی "Manage Database" بروید
# "Create user" یا "Edit user" را انتخاب کنید
# دستورات را دنبال کرده و نقش "owner" یا "admin" را انتخاب کنیداگر ترجیح میدهید میتوانید از دستورات دیتابیس نیز استفاده کنید:
cd /opt/songbird/server
# اگر میخواهید کاربر جدید ایجاد کنید
npm run db:user:create
# یا اگر میخواهید کاربری را ارتقا دهید
npm run db:user:edit
# دستورات را دنبال کرده و نقش "owner" یا "admin" را انتخاب کنیدبا حساب ارتقایافته به برنامه Songbird خود وارد شوید
روی دکمه 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 انجام شوند:
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، دستورات دیتابیس را ببینید.