Skip to content

نصب دستی

پیش‌نیازها (روی Ubuntu 22.04+ آزمایش شده):

  • یک سرور Ubuntu با دسترسی sudo
  • یک نام دامنه که به IP عمومی سرور شما اشاره می‌کند (توصیه‌شده)

۱. راه‌اندازی سیستم

بسته‌های موردنیاز را به‌روزرسانی و نصب کنید:

bash
sudo apt update
sudo apt install -y git curl build-essential nginx python3-certbot-nginx ffmpeg

Node.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 nodejs

nvm:

bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/latest/install.sh | bash

Volta:

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.target

INFO

  • اگر 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 نصب کرده‌اید، از این مرحله صرف‌نظر کنید.

به‌دلیل ملاحظات امنیتی، توصیه می‌شود یک کاربر سیستمی اختصاصی ایجاد کرده و مالکیت پوشه پروژه را تغییر دهید:

  1. این خطوط را به فایل سرویس systemd اضافه کنید:
ini
User=songbird
Group=songbird
  1. یک کاربر سیستمی اختصاصی ایجاد کنید:
bash
sudo useradd --system --no-create-home --shell /usr/sbin/nologin songbird
  1. مالکیت پوشه پروژه را تغییر دهید:
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

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