نصب دستی
پیشنیازها (روی Ubuntu 22.04+ آزمایش شده):
- یک سرور Ubuntu با دسترسی sudo
- یک نام دامنه که به IP عمومی سرور شما اشاره میکند (توصیهشده)
۱. راهاندازی سیستم
بستههای موردنیاز را بهروزرسانی و نصب کنید:
bash
sudo apt update
sudo apt install -y git curl build-essential nginx python3-certbot-nginx ffmpegNode.js و npm را نصب کنید (یکی را انتخاب کنید):
| روش | بهترین برای | یادداشت |
|---|---|---|
| NodeSource | بیشتر نصبها (توصیهشده) | نصب سراسری سیستم از طریق apt. |
| nvm | مدیریت نسخه Node برای هر کاربر | پس از کلونکردن به nvm install / nvm use نیاز دارد. |
| Volta | زنجیره ابزار پینشده برای هر پروژه | یک نسخه مشخص از Node/npm نصب میکند. |
NodeSource (توصیهشده):
bash
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejsnvm:
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/latest/install.sh | bashVolta:
bash
curl https://get.volta.sh | bash
volta install node@24.11.1 npm@11.6.4۲. کلونکردن مخزن
bash
sudo mkdir -p /opt/songbird
cd /opt/songbird
git clone https://github.com/bllackbull/Songbird.git .INFO
اگر Node.js را با استفاده از nvm نصب کردهاید:
bash
nvm install
nvm use۳. نصب وابستگیها
bash
cd /opt/songbird/server
npm install
cd /opt/songbird/client
npm install
npm run build۴. ایجاد سرویس systemd
فایل /etc/systemd/system/songbird.service را با محتوای زیر ایجاد کنید:
ini
[Unit]
Description=Songbird server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/songbird/server
ExecStart=/usr/bin/env node /opt/songbird/server/index.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetINFO
- اگر Node.js را با استفاده از nvm نصب کردهاید، این مسیر Node را در
ExecStartتنظیم کنید:
ini
ExecStart=/root/.nvm/versions/node/v24.11.1/bin/node index.js- اگر Node.js را با استفاده از volta نصب کردهاید، این مسیر Node را در
ExecStartتنظیم کنید:
ini
ExecStart=/root/.volta/bin/node index.jsتوصیهشده: ایجاد یک کاربر اختصاصی:
WARNING
اگر Node.js را با استفاده از nvm یا volta نصب کردهاید، از این مرحله صرفنظر کنید.
بهدلیل ملاحظات امنیتی، توصیه میشود یک کاربر سیستمی اختصاصی ایجاد کرده و مالکیت پوشه پروژه را تغییر دهید:
- این خطوط را به فایل سرویس systemd اضافه کنید:
ini
User=songbird
Group=songbird- یک کاربر سیستمی اختصاصی ایجاد کنید:
bash
sudo useradd --system --no-create-home --shell /usr/sbin/nologin songbird- مالکیت پوشه پروژه را تغییر دهید:
bash
sudo chown -R songbird:songbird /opt/songbird
git config --global --add safe.directory /opt/songbirdفعالسازی و راهاندازی سرویس:
bash
sudo systemctl daemon-reload
sudo systemctl enable --now songbird.service