اسکریپت نصب
اسکریپت نصب (songbird-deploy) روش توصیهشده برای نصب و مدیریت Songbird است. این یک ابزار تعاملی و مبتنی بر منو است که وابستگیها، بیلدها، Nginx، گواهینامههای SSL، پیکربندی محیط، مدیریت پایگاه داده و بهروزرسانیها را مدیریت میکند، تا مجبور نباشید آن مراحل را بهصورت دستی اجرا کنید.
INFO
این اسکریپت برای Ubuntu (22.04+) هدفگذاری شده و به دسترسی root نیاز دارد (هنگامی که بهعنوان root اجرا نشود، بهطور خودکار از sudo استفاده میکند). برای راهاندازیهای مبتنی بر Docker یا کاملاً دستی، به نصب از طریق Docker و نصب دستی مراجعه کنید.
اولین اجرا
این دستور تکخطی را روی سرور خود اجرا کنید:
curl -fsSL https://raw.githubusercontent.com/bllackbull/Songbird/main/scripts/install.sh | bashاین دستور اسکریپت را دانلود میکند، منو را باز میکند و یک دستور سراسری songbird-deploy را نصب میکند. از آن پس، هر زمان که خواستید آن را با این دستور اجرا کنید:
songbird-deployمنوی اصلی
| گزینه | اقدام | توضیح |
|---|---|---|
| 1 | 📥 Install Songbird | نصب کامل راهنماییشده: وابستگیها، بیلد، Nginx، SSL و .env. |
| 2 | 🔄 Update Songbird | دریافت جدیدترین نسخه، بازسازی و راهاندازی مجدد (پشتیبانگیری اختیاری پیش از بهروزرسانی). |
| 3 | ♻️ Restart Songbird | راهاندازی مجدد songbird.service. |
| 4 | ⚙️ Edit Settings (.env) | تغییر پورتها، آپلودها، نگهداری، ثبتنام و دیگر مقادیر محیطی، سپس بازسازی/اعمال. |
| 5 | 🗃️ Manage Database | باز کردن زیرمنوی پایگاه داده (به پایین مراجعه کنید). |
| 6 | 🗑️ Remove Songbird | حذف نصب Songbird، با امکان اختیاری حذف دستور سراسری. |
| 7 | 🔄 Reinstall songbird-deploy | بهروزرسانی دستور سراسری به جدیدترین نسخه اسکریپت. |
| 8 | 🌐 Configure mirrors | تنظیم mirrorهای NodeSource، apt و رجیستری npm برای شبکههای محدودشده. |
| 9 | 📋 View Logs | باز کردن زیرمنوی لاگها (اسکریپت، سرویس، دسترسی/خطای Nginx). |
| 0 | 🚪 Exit | خروج از منو. |
روند نصب
هنگامی که Install را انتخاب میکنید، اسکریپت شما را از طریق مجموعهای از پرسشها راهنمایی میکند:
۱. حالت منبع
| حالت | توضیح |
|---|---|
| GitHub | کلونکردن پروژه از مخزن رسمی GitHub. |
| Offline | نصب از یک فایل zip منبع محلی (برای سرورهای جداشده از شبکه مفید است). |
۲. حالت نصب
| حالت | توضیح |
|---|---|
| Domain | ارائه Songbird روی یک نام دامنه (برای مثال example.com). |
| IP | ارائه Songbird مستقیماً روی IP عمومی سرور. |
۳. حالت گواهینامه
| حالت | توضیح |
|---|---|
| Obtain certificate | درخواست خودکار یک گواهینامه. برای دامنهها از Certbot (Let's Encrypt) استفاده میکند؛ برای IPها یک گواهینامه کوتاهمدت ۶ روزه از طریق lego درخواست میکند. |
| TLS certificate files | استفاده از fullchain.pem و privkey.pem موجود خودتان. |
| HTTP only | صرفنظر از TLS و ارائه روی HTTP ساده. |
INFO
HTTPS برای اعلانهای فشاری موردنیاز است (بهجز روی localhost). اگر میخواهید push کار کند، حالت گواهینامهای غیر از HTTP only را انتخاب کنید.
۴. پرسشهای محیط
در حین نصب، اسکریپت تنظیمات اصلی را میپرسد و آنها را در .env مینویسد:
| پرسش | متغیر محیطی | پیشفرض |
|---|---|---|
| پورت سرور | SERVER_PORT | 5174 |
| پورت کلاینت | CLIENT_PORT | 80 |
| اجازه ایجاد حساب از طریق وبسایت | SIGN_UP | true |
| فعالکردن آپلود فایل | FILE_UPLOAD | true |
| حداکثر اندازه کل آپلود (مگابایت) | FILE_UPLOAD_MAX_TOTAL_SIZE_MB | 75 |
| فاصله زمانی حذف خودکار فایل (روز) | MESSAGE_FILE_RETENTION | 7 |
| حذف خودکار پیامهای فقطمتنی (روز) | MESSAGE_TEXT_RETENTION | 0 |
| ایمیل برای اطلاعیههای Let's Encrypt (حالت certbot) | — | — |
کلیدهای رمزنگاری و push (STORAGE_ENCRYPTION_KEY، VAPID_*) بهطور خودکار تولید میشوند. فهرست کامل متغیرهایی که میتوانید بعداً تنظیم کنید در متغیرهای محیطی قرار دارد.
زیرمنوی پایگاه داده
گزینه ۵ یک مدیر کامل پایگاه داده را باز میکند که دستورات پایگاه داده را با پرسشهای راهنماییشده میپوشاند، بنابراین نیازی به بهخاطر سپردن پرچمها ندارید:
| گروه | اقدامها |
|---|---|
| Inspect | خلاصه پایگاه داده، چتها، کاربران، فایلها |
| Backup & Repair | پشتیبانگیری، بازیابی، vacuum، بازنشانی، حذف |
| User & Chat Management | ایجاد کاربر، تولید کاربران، ویرایش کاربر، مسدود/رفعمسدود، ایجاد گروه/کانال، افزودن اعضا، ویرایش چت |
| Remote Channels | پیکربندی کانال راه دور |
| Destructive Actions | حذف چتها، حذف کاربران، حذف فایلها |
| Help & Navigation | نمایش راهنما، بازگشت، خروج |
بهروزرسانی
از منو Update Songbird را انتخاب کنید. اسکریپت میتواند ابتدا یک پشتیبان از پایگاه داده ایجاد کند، سپس جدیدترین نسخه را دریافت کرده، کلاینت را بازسازی و سرویس را راهاندازی مجدد میکند. برای معادل دستی به بهروزرسانی مراجعه کنید.
mirrorها برای شبکههای محدودشده
اگر سرور شما دسترسی محدودی به منابع پیشفرض بستهها دارد، از Configure mirrors برای تنظیم موارد زیر استفاده کنید:
| mirror | هدف |
|---|---|
| NodeSource mirror | منبع جایگزین برای راهاندازی apt مربوط به Node.js. |
| apt mirror source | mirror اضافه apt برای بستههای پایه. |
| npm registry mirror | رجیستری جایگزین npm برای نصب وابستگیها. |
همچنین میتوانید از همان منو پیشفرضها را بازگردانی کنید (پاککردن همه mirrorها).
TIP
میتوانید از این mirrorها در محیط محدودشده ایران استفاده کنید:
- NodeSource:
https://mirror-nodejs.runflare.com/dist/v24.0.0/node-v24.0.0-linux-x64.tar.gz- APT:
http://repo.iut.ac.ir/ubuntu/- NPM:
https://npm.devneeds.ir/لاگها
زیرمنوی View Logs مفیدترین لاگها را بدون نیاز به بهخاطر سپردن مسیرها در دسترس قرار میدهد:
| گزینه | منبع |
|---|---|
| Script logs | لاگ خود نصاب در /opt/songbird/logs/install.log. |
| Service logs | خروجی journalctl برای songbird.service. |
| Nginx access logs | لاگ دسترسی Nginx. |
| Nginx error logs | لاگ خطای Nginx. |
برای اطلاعات بیشتر درباره تشخیص مشکلات، به عیبیابی مراجعه کنید.