docs(readme): refresh all seven READMEs for the current feature set

The READMEs had not moved since 2026-07-07, 341 commits ago, and had
drifted far enough to misdescribe the panel: AmneziaWG and MTProto
inbounds were missing from the protocol list entirely, the outbound
list predated PIA, and the API section still advertised Swagger rather
than scoped, optionally expiring tokens.

Add the two missing protocols plus a bullet each for what makes them
notable — AmneziaWG runs on the embedded userspace netstack, so unlike
the DKMS/awg-quick shape it originally shipped with there is nothing to
install, and MTProto client edits hot-apply through the mtg-multi
management API instead of bouncing the process. Fold the smaller
additions into the bullets they belong to (HWID device limits, IP-limit
exemptions, renewal cycles, inbound cloning, balancer-to-balancer
fallback, geosite/geoip browsing, named subscription formats) and add
one for PWA installability.

Point documentation at docs.sanaei.dev, which the panel sidebar already
links to and which supersedes the wiki, using each README's own locale
where the docs site has one (fa/ru/zh). Bump the pinned install example
to the current stable tag, note the .sha256 verification install.sh and
update.sh now perform, and document XUI_NODE_TOKEN_KEY_FILE /
XUI_NODE_TOKEN_KEY, which no markdown in the repo covered.

All seven files move together so the language picker keeps pointing at
equivalent documents.
This commit is contained in:
Sanaei
2026-09-04 09:49:25 +02:00
parent 2e81865a02
commit 3ef06b7000
11 changed files with 261 additions and 67 deletions
+31 -1
View File
@@ -1,6 +1,6 @@
---
title: Переменные окружения
description: Полный справочник по переменным окружения XUI_* в 3x-ui — база данных, панель, логирование, память и монитор работоспособности туннеля.
description: Полный справочник по переменным окружения XUI_* в 3x-ui — база данных, панель, логирование, память, шифрование токенов узлов и монитор работоспособности туннеля.
icon: Variable
---
@@ -34,6 +34,36 @@ icon: Variable
| `XUI_ENABLE_FAIL2BAN` | `true` | Включить ограничение по IP на основе Fail2ban. |
| `XUI_SKIP_HSTS` | `false` | Не отправлять заголовок HSTS — установите `true`, когда TLS терминируется обратным прокси. |
## Шифрование токенов узлов
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` | — | Один 32-байтный ключ в 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 |