---
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` یا محدودتر. نخست همین بارگذاری می‌شود.                                                                                                 |
| `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). |
