نصب از طریق Docker
پیشنیازها (روی Ubuntu 22.04+ آزمایش شده):
- یک سرور Ubuntu با دسترسی sudo
- یک نام دامنه که به IP عمومی سرور شما اشاره میکند (توصیهشده)
۱. راهاندازی سیستم
این بستهها را نصب کنید:
sudo apt install -y ca-certificates gnupg lsb-releaseکلید رسمی GPG مربوط به Docker را اضافه کنید:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgمخزن apt مربوط به Docker را اضافه کنید:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullDocker Engine + افزونه Compose را نصب کنید:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginاختیاری: اجرای Docker بدون sudo:
sudo usermod -aG docker $USER
newgrp dockerاختیاری: بررسی نصب:
docker --version
docker compose version
docker run hello-world۲. کلونکردن مخزن
sudo mkdir -p /opt/songbird
cd /opt/songbird
git clone https://github.com/bllackbull/Songbird.git .۳. پیکربندی محیط
فایل نمونه محیطی را کپی کرده و ویرایش کنید:
cp .env.example .env
nano .env۴. راهاندازی گواهینامه TLS
کانتینر nginx برای اجرا به فایلهای گواهینامه TLS نیاز دارد. گواهینامه و کلید خصوصی خود را در مسیرهای زیر قرار دهید:
certs/cert.pem— گواهینامه (یا زنجیره کامل)certs/key.pem— کلید خصوصی
برای گزینههای موجود (Certbot، فایلهای موجود یا اسکریپت نصب)، به گواهینامههای SSL مراجعه کنید.
۵. ساخت و اجرا
ایمیج از پیش ساختهشده را دریافت و کانتینرها را اجرا کنید:
cd /opt/songbird
docker compose up -dایمیج بهطور خودکار از Docker Hub دریافت میشود. اگر ترجیح میدهید از سورس بسازید، docker-compose.yaml را ویرایش کرده و خط image: را با بلوک build: جایگزین کنید (دستورالعملها در کامنتهای فایل موجود است).
کانتینر nginx قبل از پذیرش ترافیک منتظر میماند تا بررسی سلامت اپلیکیشن موفق شود. این کار از خطاهای 502 در طول پنجره راهاندازی کوتاه هنگام اجرای migration جلوگیری میکند.
اختیاری: بررسی موفقیتآمیز بودن راهاندازی کانتینرها:
docker compose ps
docker compose logs -fپیکربندی Nginx
کانتینر nginx با استفاده از گواهینامههای موجود در پوشه certs/، HTTPS را روی پورت 443 ارائه میدهد. برای سفارشیسازی پیکربندی nginx، به صفحه پیکربندی Nginx مراجعه کنید. پس از ویرایش nginx/nginx.conf، کانتینر nginx را مجدداً راهاندازی کنید:
docker compose restart nginxکنترل سرویس در پنل مدیریت
اقدامات ریستارت سرویس و توقف سرویس در پنل مدیریت برای استقرار Docker با فراخوانی Docker Engine API از طریق سوکت mountشده (/var/run/docker.sock) کار میکنند. فایل compose متغیر SONGBIRD_CONTAINER_NAME=songbird را تنظیم میکند تا اپلیکیشن بداند کدام کانتینر را هدف قرار دهد.
اگر نام کانتینر را تغییر دادید یا از نام سفارشی استفاده میکنید، متغیر env را بهروز کنید:
# docker-compose.yaml
environment:
SONGBIRD_CONTAINER_NAME: my-custom-nameاگر به کنترل سرویس از پنل مدیریت نیاز ندارید، میتوانید mount سوکت را از docker-compose.yaml حذف کنید:
# این خط را در بخش volumes مربوط به songbird حذف یا کامنت کنید:
# - /var/run/docker.sock:/var/run/docker.sockبهروزرسانی
ایمیج جدید را دریافت و مجدداً راهاندازی کنید:
cd /opt/songbird
docker compose pull
docker compose up -dبرای روش کامل بهروزرسانی، صفحه بهروزرسانی را ببینید.