Docker Compose

پنل، PostgreSQL و Prometheus را با فایل compose همراه مخزن، با هم اجرا کنید.

آخرین به‌روزرسانی ۲۳ مرداد ۱۴۰۵نمایش به‌صورت مارک‌داون

مرور کلی

مخزن یک docker-compose.yml همراه دارد که سه سرویس را بالا می‌آورد: برنامه (nasnet_panel_backendPostgreSQL 16 (nasnet_panel_db) و Prometheus (nasnet_panel_prometheus). این مسیر وقتی توصیه می‌شود که از قبل Docker روی میزبان دارید و ترجیح می‌دهید خودتان پیکربندی را ویرایش کنید، نه اینکه به یک ویزارد جواب بدهید.

پیش از شروع

  • Docker Engine و افزونهٔ Docker Compose نصب باشند.
  • JWT_SECRET_KEY و ADMIN_PASSWORD_HASH شما ساخته شده باشند، همان‌طور که در نصب آمده است.
  • پورت 9761 در دسترس باشد، یا مقدار دیگری برای APP_PORT آماده باشد.

گام‌ها

  1. مخزن را clone کنید و فایل پیکربندی خودتان را بسازید.
git clone https://github.com/nasnet-community/nasnet-panel-linux.git
cd nasnet-panel-linux
cp .env.example .env
  1. .env را ویرایش کنید و دست‌کم ADMIN_USERNAME، ADMIN_PASSWORD_HASH، JWT_SECRET_KEY، APP_BASE_URL و DB_PASSWORD را مقدار بدهید.

  2. استک را بالا بیاورید و بالا آمدنش را تماشا کنید.

docker compose up -d
docker compose logs -f app
  1. وقتی کانتینر app سلامت را گزارش داد، APP_BASE_URL خودتان را باز کنید و وارد شوید. Compose سلامت برنامه را روی http://localhost:${APP_PORT}/health/ready وارسی می‌کند.

استفاده از SQLite به جای PostgreSQL

برای یک راه‌اندازی کوچک تک‌سروری می‌توانید کانتینر پایگاه‌داده را بردارید. این را در .env بگذارید:

DB_DRIVER=sqlite
DB_PATH=/app/data/nasnet_panel.db

بعد با فایل override بالا بیاورید، که وابستگی به PostgreSQL را برمی‌دارد و یک والیوم SQLite را mount می‌کند:

docker compose -f docker-compose.yml -f docker-compose.sqlite.yml up -d

منتشر کردن پورت‌های پروکسی

فایل compose به‌طور پیش‌فرض فقط ${APP_PORT:-9761} را منتشر می‌کند. پورت‌هایی که inboundهای Xray شما روی آن‌ها گوش می‌دهند را به فهرست ports سرویس app اضافه کنید، چون فایل یک نمونهٔ کامنت‌شده برای 443 دارد.

مرجع

مورد مقدار
کانتینر برنامه nasnet_panel_backend
کانتینر پایگاه‌داده nasnet_panel_db (postgres:16-alpine)
کانتینر Prometheus nasnet_panel_prometheus (prom/prometheus:v3.2.1)
پورت پنل ${APP_PORT:-9761}
پورت Prometheus ${PROMETHEUS_PORT:-9090}
وارسی سلامت /health/ready
والیوم‌های نام‌دار postgres_data، acme_data، prometheus_data، xray_config، backups_data

سرویس app قابلیت‌های NET_ADMIN و NET_BIND_SERVICE را هم می‌گیرد تا Xray بتواند پورت‌های ممتاز را بگیرد و رابط‌ها را مدیریت کند.

رفع مشکلات

نشانه چه کنید
کانتینر برنامه پیش از آماده شدن Postgres دوباره راه می‌افتد. Compose از قبل بالا آمدن app را به وارسی سلامت pg_isready پایگاه‌داده مشروط کرده است، پس حلقه خوردن در اینجا معمولاً یعنی DB_PASSWORD در .env با آن چیزی که کانتینر Postgres بار اول با آن راه‌اندازی شد نمی‌خواند. رمز در اولین بالا آمدن داخل postgres_data ثبت می‌شود، پس یا رمز اصلی را برگردانید یا والیوم را حذف کنید، که کار مخربی است.

مرتبط