Files
3x-ui/docs/content/docs/fa/reference/env-vars.mdx
T
MHSanaei 3fc3992a46 fix(nodetoken): stop refusing every node-token key file on Windows
FileKeySource rejected any key file whose mode had group or other bits,
but Windows has no such bits: Stat reports every writable file as 0666.
On the Windows builds release.yml ships, the key file therefore never
loaded, not even one written 0600, and only XUI_NODE_TOKEN_KEY could
supply a key. The mode check now applies off Windows only, the stance
the DB permission tests already take; there the file's NTFS ACL guards
it, and env-vars.mdx says so in all four locales.

The load test is split so the half that must hold everywhere, an
owner-only file loading, also runs on Windows, and the rejection half
asserts the exact error instead of any error.
2026-09-27 15:55:42 +02:00

116 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: متغیرهای محیطی
description: مرجع کامل متغیرهای محیطی ‎`XUI_*`‎ در 3x-ui — پایگاه‌داده، پنل، لاگ‌گیری، حافظه، رمزگذاری توکن نود و پایشگر سلامت تونل.
icon: Variable
---
‏3x-ui پیکربندی زمان‌اجرای خود را از متغیرهای محیطی `XUI_*` می‌خواند. در نصب
اسکریپتی، نصب‌کننده آن‌ها را در فایل محیطی سرویس می‌نویسد
(`/etc/default/x-ui`، یا بسته به توزیع `/etc/conf.d/x-ui` / `/etc/sysconfig/x-ui`)؛
برای Docker آن‌ها را در `docker-compose.yml` یا `docker run -e` تنظیم می‌کنید.
مقادیر پیش‌فرض منطقی هستند — فقط آنچه را که نیاز به تغییر دارید تنظیم کنید، سپس
ری‌استارت کنید: `systemctl restart x-ui`.
## پایگاه‌داده
| Variable | Default | Description |
| ------------------------ | ----------- | -------------------------------------------------------------------- |
| `XUI_DB_TYPE` | `sqlite` | بک‌اند: `sqlite`، یا `postgres` (همچنین `postgresql` / `pg` را می‌پذیرد). |
| `XUI_DB_FOLDER` | `/etc/x-ui` | پوشه‌ی فایل پایگاه‌داده‌ی SQLite (`x-ui.db`). |
| `XUI_DB_DSN` | — | رشته‌ی اتصال PostgreSQL (وقتی `XUI_DB_TYPE=postgres` باشد استفاده می‌شود). |
| `XUI_DB_MAX_OPEN_CONNS` | — | حداکثر اتصالات باز در استخر PostgreSQL. |
| `XUI_DB_MAX_IDLE_CONNS` | — | حداکثر اتصالات بی‌کار در استخر PostgreSQL. |
مسیر پیش‌فرض پایگاه‌داده‌ی SQLite برابر `/etc/x-ui/x-ui.db` است. برای جزئیات
‏SQLite ↔ PostgreSQL به [پایگاه‌داده](/docs/reference/database) مراجعه کنید.
## پنل
| Variable | Default | Description |
| ------------------------ | ------- | ------------------------------------------------------------------------ |
| `XUI_PORT` | — | بازنویسی پورت پنل (۱ تا ۶۵۵۳۵). بر تنظیم ذخیره‌شده اولویت دارد. |
| `XUI_INIT_WEB_BASE_PATH` | `/` | مسیر پایه‌ی وب اولیه در **نخستین** اجرا (مثلاً `/panel`). |
| `XUI_ENABLE_FAIL2BAN` | `true` | فعال‌سازی اعمالِ محدودیت IP مبتنی بر Fail2ban. |
| `XUI_SKIP_HSTS` | `false` | رد کردن هدر HSTS — وقتی TLS توسط یک پروکسی معکوس خاتمه می‌یابد، `true` تنظیم کنید. |
## رمزگذاری توکن نود
توکن‌های حامل (bearer) API نود — و توکن ذخیره‌شده‌ی PIA — به‌صورت پیش‌فرض به شکل
متن ساده نگهداری می‌شوند. رمزگذاری در حالت سکون اختیاری است و به‌صورت ایمن شکست
می‌خورد: با هر حالتی به‌جز `off`، اگر پنل نتواند کلیدی را بارگذاری کند، اجرا نمی‌شود.
| Variable | Default | Description |
| ------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `NODE_TOKEN_ENCRYPTION` | `off` | ‏`off`، `migration` (خواندن هم متن ساده و هم متن رمزشده را می‌پذیرد، نوشتن همیشه رمز می‌کند) یا `required` (نوشتن یکسان، اما بدون کلید اجرا شکست می‌خورد). به نبودِ پیشوند `XUI_` توجه کنید. |
| `XUI_NODE_TOKEN_KEY_FILE` | `/etc/x-ui/node_token_key.json` | حلقه‌کلید JSON با دسترسی `0600` یا محدودتر (در ویندوز بررسی نمی‌شود و مجوزهای NTFS از آن محافظت می‌کنند). نخست همین بارگذاری می‌شود. |
| `XUI_NODE_TOKEN_KEY` | — | یک کلید ۳۲ بایتی base64 که فقط هنگام شکست بارگذاری فایل کلید خوانده می‌شود. شناسه‌ی کلید آن ثابت و برابر `env` است، پس امکان چرخش ندارد. |
فایل کلید، کلید فعال به‌همراه هر کلید قدیمی‌ای را که هنوز برای رمزگشایی لازم است نام می‌برد:
```json
{ "active": "k1", "keys": { "k1": "<base64 32-byte key>" } }
```
کلید را با `openssl rand -base64 32` بسازید؛ کلیدها هرگز به‌عنوان آرگومان خط فرمان
پذیرفته نمی‌شوند. پس از فعال‌کردن یک حالت، ردیف‌هایی را که از پیش در پایگاه‌داده
هستند با کلید فعال دوباره رمز کنید:
```bash
x-ui encrypt-tokens
```
این دستور ردیف‌های نود را پوشش می‌دهد؛ توکن PIA در نوبت بعدیِ خواندن دوباره رمز
می‌شود. برای چرخش کلید، کلید جدید را به `keys` اضافه کنید، `active` را به آن اشاره
دهید، کلید قدیمی را برای رمزگشایی نگه دارید و دوباره `x-ui encrypt-tokens` را اجرا کنید.
## لاگ‌گیری و باینری‌ها
| Variable | Default | Description |
| ---------------- | ---------------- | ----------------------------------------------------------- |
| `XUI_LOG_LEVEL` | `info` | `debug`، `info`، `notice`، `warning`، یا `error`. |
| `XUI_DEBUG` | `false` | حالت دیباگ (سطح لاگ را به `debug` وادار می‌کند). |
| `XUI_LOG_FOLDER` | `/var/log/x-ui` | پوشه‌ی خروجی لاگ. |
| `XUI_BIN_FOLDER` | `bin` | پوشه‌ی باینری Xray-core و فایل‌های geosite/geoip. |
## حافظه و پروفایلینگ
پنل با استفاده از `GOGC` و آزادسازی‌های دوره‌ای، مصرف حافظه را پایین نگه می‌دارد.
این‌ها تنظیمات پیشرفته‌ای هستند — مگر اینکه در حال تنظیم دقیق یک میزبان با منابع
محدود باشید، آن‌ها را تنظیم‌نشده رها کنید.
| Variable | Default | Description |
| ----------------------------- | ------- | ----------------------------------------------------------------- |
| `XUI_GOGC` | — | درصد هدف GC در Go؛ کمتر = RAM کمتر، CPU اندکی بیشتر. |
| `XUI_MEMORY_RELEASE_INTERVAL` | — | فاصله‌ی زمانی فراخوانی‌های `FreeOSMemory` بر حسب دقیقه؛ مقدار `0` آن را غیرفعال می‌کند. |
| `XUI_MEMORY_LIMIT` | — | محدودیت نرم حافظه‌ی Go بر حسب **MiB**. |
| `GOMEMLIMIT` | — | محدودیت نرم با نحو Go (مثلاً `400MiB`)؛ بر مورد بالا اولویت دارد.|
| `XUI_PPROF` | `false` | در دسترس قرار دادن پروفایلینگ pprof روی `127.0.0.1:6060`. |
## Xray
| Variable | Default | Description |
| ------------------------ | ------- | --------------------- |
| `XRAY_VMESS_AEAD_FORCED` | `false` | الزامی‌کردن VMess AEAD. |
## پایشگر سلامت تونل
نگهبان اختیاری: یک URL را پروب می‌کند (به‌صورت اختیاری **از طریق** یک ورودی محلی
‏Xray) و پس از خرابی‌های مکرر، Xray را ری‌استارت می‌کند. هر ری‌استارت همه‌ی
کلاینت‌های متصل را قطع می‌کند، پس آن را آگاهانه فعال کنید.
| Variable | Default | Description |
| ----------------------------- | -------------------------------------------- | ----------------------------------------------------------------- |
| `XUI_TUNNEL_HEALTH_MONITOR` | `false` | فعال‌سازی پایشگر. |
| `XUI_TUNNEL_HEALTH_PROXY` | — | پروکسی‌ای که پروب از طریق آن ارسال می‌شود، مثلاً `socks5://127.0.0.1:1080`. خالی = فقط اتصال میزبان را بررسی می‌کند. |
| `XUI_TUNNEL_HEALTH_URL` | `https://www.cloudflare.com/cdn-cgi/trace` | URLی که پروب می‌شود. |
| `XUI_TUNNEL_HEALTH_INTERVAL` | `30s` | فاصله‌ی زمانی بین پروب‌ها. |
| `XUI_TUNNEL_HEALTH_TIMEOUT` | `10s` | مهلت زمانی هر پروب. |
| `XUI_TUNNEL_HEALTH_FAILURES` | `3` | تعداد خرابی‌های متوالی پیش از یک ری‌استارت. |
| `XUI_TUNNEL_HEALTH_COOLDOWN` | `5m` | حداقل تأخیر بین ری‌استارت‌ها. |
## نصب بدون نظارت
| Variable | Description |
| -------------------- | -------------------------------------------------------------------------------------------- |
| `XUI_NONINTERACTIVE` | روی `1` تنظیم کنید (یا بدون TTY اجرا کنید) تا نصب بدون هیچ پرسشی انجام شود؛ اطلاعات احراز هویتِ تولیدشده در `/etc/x-ui/install-result.env` نوشته می‌شوند. نگاه کنید به [نصب](/docs/guide/installation#unattended--cloud-init). |