Skip to content

اسکریپت نصب

اسکریپت نصب (songbird-deploy) روش توصیه‌شده برای نصب و مدیریت Songbird است. این یک ابزار تعاملی و مبتنی بر منو است که وابستگی‌ها، بیلدها، Nginx، گواهی‌نامه‌های SSL، پیکربندی محیط، مدیریت پایگاه داده و به‌روزرسانی‌ها را مدیریت می‌کند، تا مجبور نباشید آن مراحل را به‌صورت دستی اجرا کنید.

INFO

این اسکریپت برای Ubuntu (22.04+) هدف‌گذاری شده و به دسترسی root نیاز دارد (هنگامی که به‌عنوان root اجرا نشود، به‌طور خودکار از sudo استفاده می‌کند). برای راه‌اندازی‌های مبتنی بر Docker یا کاملاً دستی، به نصب از طریق Docker و نصب دستی مراجعه کنید.

اولین اجرا

این دستور تک‌خطی را روی سرور خود اجرا کنید:

bash
curl -fsSL https://raw.githubusercontent.com/bllackbull/Songbird/main/scripts/install.sh | bash

این دستور اسکریپت را دانلود می‌کند، منو را باز می‌کند و یک دستور سراسری songbird-deploy را نصب می‌کند. از آن پس، هر زمان که خواستید آن را با این دستور اجرا کنید:

bash
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_PORT5174
پورت کلاینتCLIENT_PORT80
اجازه ایجاد حساب از طریق وب‌سایتSIGN_UPtrue
فعال‌کردن آپلود فایلFILE_UPLOADtrue
حداکثر اندازه کل آپلود (مگابایت)FILE_UPLOAD_MAX_TOTAL_SIZE_MB75
فاصله زمانی حذف خودکار فایل (روز)MESSAGE_FILE_RETENTION7
حذف خودکار پیام‌های فقط‌متنی (روز)MESSAGE_TEXT_RETENTION0
ایمیل برای اطلاعیه‌های 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 sourcemirror اضافه 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.

برای اطلاعات بیشتر درباره تشخیص مشکلات، به عیب‌یابی مراجعه کنید.

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