پرش به مطلب اصلی

متغیرهای محیطی

فایل .env توسط کانتینر پنل خوانده می‌شود. متغیرهای الزامی با نشان الزامی مشخص شده‌اند. مقادیر پیش‌فرض — همان‌هایی هستند که کد جای‌گذاری می‌کند.

برنامه​

متغیرپیش‌فرضتوضیحات
APP_PORT3000پورت HTTP API و رابط وب
METRICS_PORT3001پورت متریک‌های Prometheus
API_INSTANCES1تعداد ورکرهای API. max — برابر تعداد هسته‌ها، -1 — تعداد هسته‌ها منهای یک. بیشتر از تعداد هسته‌های فیزیکی تنظیم نکنید
IS_HTTP_LOGGING_ENABLEDfalseثبت لاگ درخواست‌های HTTP. بدنه درخواست‌ها هرگز نوشته نمی‌شود
ENABLE_DEBUG_LOGSfalseلاگ‌های تفصیلی برنامه
REMNAWAVE_BRANCHdevشاخه‌ای که برنامه در اندپوینت‌های سرویس‌دهی اعلام می‌کند

پایگاه داده و کش​

متغیرپیش‌فرضتوضیحات
DATABASE_URL الزامی—رشته اتصال، مثلاً postgresql://xpanel:pass@xpanel-db:5432/xpanel?schema=public
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB—فقط توسط کانتینر PostgreSQL استفاده می‌شوند؛ خود برنامه آن‌ها را نمی‌خواند
REDIS_SOCKET—مسیر unix-socket مربوط به Valkey/Redis (جایگزین هاست و پورت)
REDIS_HOST / REDIS_PORT— / 6379آدرس Valkey/Redis
REDIS_USERNAME / REDIS_PASSWORD—اگر احراز هویت فعال باشد
REDIS_DB0شماره پایگاه داده

اسرار و دامنه‌ها​

متغیرپیش‌فرضتوضیحات
APP_SECRET الزامی—64 کاراکتر. هش رمزهای عبور، JWT، رمزنگاری TOTP. پس از راه‌اندازی قابل تغییر نیست
JWT_AUTH_LIFETIME الزامی—مدت اعتبار access-توکن به ساعت، مجاز از 12 تا 168
PANEL_DOMAIN الزامی—آدرس عمومی پنل، همراه با https://
FRONT_END_DOMAIN*مبدأیی که درخواست‌های CORS برای آن مجاز است
SUB_PUBLIC_DOMAIN الزامی—دامنه اشتراک بدون https:// و بدون اسلش در انتها؛ در profile-web-page-url قرار می‌گیرد

متریک‌ها​

متغیرتوضیحات
METRICS_USER الزامینام کاربری basic auth برای http://127.0.0.1:3001/metrics
METRICS_PASS الزامیرمز عبور basic auth
هشدار

بدون METRICS_USER و METRICS_PASS کانتینر بالا نمی‌آید.

Telegram​

متغیرپیش‌فرضتوضیحات
IS_TELEGRAM_NOTIFICATIONS_ENABLEDfalseاعلان‌های Telegram را فعال می‌کند
TELEGRAM_BOT_TOKEN—توکن ربات
TELEGRAM_BOT_API_ROOThttps://api.telegram.orgآدرس Bot API؛ اگر از Bot API server محلی استفاده می‌کنید تغییر دهید
TELEGRAM_BOT_PROXY—پروکسی برای درخواست‌ها به Telegram، مثلاً socks5://proxy:1080
TELEGRAM_NOTIFY_USERS—چت‌ها برای رویدادهای کاربران
TELEGRAM_NOTIFY_NODES—چت‌ها برای رویدادهای نودها
TELEGRAM_NOTIFY_CRM—چت‌ها برای رویدادهای CRM
TELEGRAM_NOTIFY_SERVICE—اعلان‌های سرویس‌دهی
TELEGRAM_NOTIFY_TBLOCKER—رویدادهای torrent-blocker

قالب چت‌ها: chat_id یا chat_id:thread_id برای تاپیک‌ها. چند مقدار — با کاما جدا می‌شوند.

وب‌هوک‌ها​

متغیرپیش‌فرضتوضیحات
WEBHOOK_ENABLEDfalseارسال وب‌هوک‌ها را فعال می‌کند
WEBHOOK_URL—آدرس گیرنده؛ چند آدرس — با کاما جدا می‌شوند. فقط http:// و https:// مجاز هستند
WEBHOOK_SECRET_HEADER—راز امضای payload، دقیقاً 64 کاراکتر [a-zA-Z0-9]

جزئیات بیشتر — در بخش وب‌هوک‌ها.

اعلان‌های آستانه​

متغیرپیش‌فرضتوضیحات
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLEDfalseاطلاع‌رسانی درباره رسیدن به آستانه ترافیک
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD[60, 80]آستانه‌ها بر حسب درصد، صعودی، از 25 تا 95، حداکثر 5 مقدار
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLEDfalseاطلاع‌رسانی درباره کاربرانی که هرگز متصل نشدند
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS[6, 24, 48]ساعت پس از ساخت کاربر، از 1 تا 168، حداکثر 3 مقدار
EXPIRATION_NOTIFICATIONS_ENABLEDfalseاطلاع‌رسانی درباره انقضای اشتراک
EXPIRATION_NOTIFICATIONS[-72, -48, -24, 24]ساعت نسبت به expireAt: مقادیر منفی — پیش از انقضا، مقادیر مثبت — پس از آن. از −168 تا 168، صفر مجاز نیست

حریم خصوصی و retention​

پاک‌سازی خودکار به‌طور پیش‌فرض خاموش است. یک job هفتگی همه جدول‌ها را پوشش می‌دهد: اگر حداقل یکی از کلیدهای SERVICE_CLEAN_USAGE_HISTORY یا SERVICE_CLEAN_OLD_LOGS فعال باشد، اجرا می‌شود.

متغیرپیش‌فرضتوضیحات
SERVICE_CLEAN_USAGE_HISTORYfalseپاک‌سازی تاریخ ترافیک را فعال می‌کند
USAGE_HISTORY_RETENTION_DAYS14چند روز nodes_user_usage_history نگه داشته شود
SERVICE_CLEAN_OLD_LOGSfalseپاک‌سازی داده‌های شخصی و آمار نودها را فعال می‌کند
NODES_USAGE_HISTORY_RETENTION_DAYS90آمار ساعتی نودها
HWID_DEVICES_RETENTION_DAYS90دستگاه‌های کاربران (hwid_user_devices)؛ شمارش از آخرین ظهور دستگاه
SUBSCRIPTION_REQUEST_HISTORY_RETENTION_DAYS30تاریخ درخواست‌های اشتراک
AUDIT_LOG_RETENTION_DAYS30گزارش اقدامات مدیران
SERVICE_DISABLE_USER_USAGE_RECORDSfalseبه‌کلی تاریخ ترافیک ثبت نشود
SERVICE_DISABLE_SRH_RECORDSfalseبه‌کلی تاریخ درخواست‌های اشتراک ثبت نشود
USER_USAGE_IGNORE_BELOW_BYTES0جهش‌های ترافیک کمتر از تعداد بایت مشخص‌شده ثبت نشوند
کمینه‌سازی داده

اگر تاریخ ترافیک و درخواست‌های اشتراک را لازم ندارید، مطمئن‌تر آن است که به‌جای پاک‌سازی بعدی، آن‌ها را جمع‌آوری نکنید: SERVICE_DISABLE_USER_USAGE_RECORDS=true و SERVICE_DISABLE_SRH_RECORDS=true.

شناسه‌های کوتاه اشتراک​

متغیرپیش‌فرضتوضیحات
SHORT_UUID_METHODnanoidnanoid — رشته تصادفی، uuid — UUID v4، custom — قالب اختصاصی
SHORT_UUID_LENGTH16طول برای روش nanoid، از 16 تا 64
SHORT_UUID_CUSTOM_PATTERN—قالب برای روش custom. توکن‌ها: {nanoid:N}, {alpha:N}, {digits:N}, {hex:N}, {uuid}

مثال: SHORT_UUID_CUSTOM_PATTERN={hex:16}-{hex:16}-{digits:10}. قالب باید از 16 تا 64 کاراکتر و حداقل حدود 64 بیت تصادفی تولید کند.

خروجی به Redis Streams​

متغیرپیش‌فرضتوضیحات
EXPORT_TO_STREAM_ENABLEDfalseانتشار رویدادهای پنل در Redis Streams
EXPORT_TO_STREAM_MAXLEN3000محدودیت تقریبی پیام‌ها در stream (MAXLEN ~)

streamها: ioraw:export:user_usage (دلتاهای ترافیک)، ioraw:export:subscription_requests (درخواست‌های اشتراک)، ioraw:export:node_connections (عکس‌های لحظه‌ای اتصال‌ها، retention یک ساعت). مناسب برای خروجی گرفتن به ClickHouse یا Vector.