Docker Compose
پنل، PostgreSQL و Prometheus را با فایل compose همراه مخزن، با هم اجرا کنید.
مرور کلی
مخزن یک docker-compose.yml همراه دارد که سه سرویس را بالا میآورد: برنامه
(nasnet_panel_backend)، PostgreSQL 16 (nasnet_panel_db) و
Prometheus (nasnet_panel_prometheus). این مسیر وقتی توصیه میشود که از قبل
Docker روی میزبان دارید و ترجیح میدهید خودتان پیکربندی را ویرایش کنید، نه اینکه
به یک ویزارد جواب بدهید.
پیش از شروع
- Docker Engine و افزونهٔ Docker Compose نصب باشند.
JWT_SECRET_KEYوADMIN_PASSWORD_HASHشما ساخته شده باشند، همانطور که در نصب آمده است.- پورت
9761در دسترس باشد، یا مقدار دیگری برایAPP_PORTآماده باشد.
گامها
- مخزن را clone کنید و فایل پیکربندی خودتان را بسازید.
git clone https://github.com/nasnet-community/nasnet-panel-linux.git
cd nasnet-panel-linux
cp .env.example .env
-
.envرا ویرایش کنید و دستکمADMIN_USERNAME،ADMIN_PASSWORD_HASH،JWT_SECRET_KEY،APP_BASE_URLوDB_PASSWORDرا مقدار بدهید. -
استک را بالا بیاورید و بالا آمدنش را تماشا کنید.
docker compose up -d
docker compose logs -f app
- وقتی کانتینر
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 ثبت میشود، پس یا رمز اصلی را برگردانید یا والیوم را حذف کنید، که کار مخربی است. |