[](https://github.com/MHSanaei/3x-ui/releases)
[](https://github.com/MHSanaei/3x-ui/actions)
[](#)
[](https://github.com/MHSanaei/3x-ui/releases/latest)
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
[](https://pkg.go.dev/github.com/mhsanaei/3x-ui/v2)
[](https://goreportcard.com/report/github.com/mhsanaei/3x-ui/v2)
**3X-UI** — продвинутая панель управления с открытым исходным кодом на основе веб-интерфейса, разработанная для управления сервером Xray-core. Предоставляет удобный интерфейс для настройки и мониторинга различных VPN и прокси-протоколов.
> [!IMPORTANT]
> Этот проект предназначен только для личного использования, пожалуйста, не используйте его в незаконных целях и в производственной среде.
Как улучшенная версия оригинального проекта X-UI, 3X-UI обеспечивает повышенную стабильность, более широкую поддержку протоколов и дополнительные функции.
## Быстрый старт
```
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
```
Полную документацию смотрите в [вики проекта](https://github.com/MHSanaei/3x-ui/wiki).
## Базы данных
3X-UI поддерживает `SQLite` и `PostgreSQL` как взаимозаменяемые бэкенды. Вся логика приложения написана через [GORM](https://gorm.io/) — ORM для Go с поддержкой множества СУБД, — поэтому запросы работают одинаково на любом движке. Переключиться между бэкендами можно в любой момент через UI панели без потери данных.
### Выбор бэкенда
| | SQLite | PostgreSQL |
|---|---|---|
| Настройка | Ноль конфигурации, файловая БД | Требует работающий PG-сервер |
| Подходит для | Один узел, малый трафик | Несколько узлов, высокая нагрузка |
| Резервные копии | Портативный + нативный файл | Только портативный |
### Переключение бэкенда через UI
1. Откройте **Настройки → Панель → База данных**.
2. Выберите бэкенд (`SQLite` или `PostgreSQL`) и заполните параметры подключения.
3. Нажмите **Проверить подключение**.
4. Нажмите **Переключить базу данных** — панель автоматически:
- Сохранит портативную резервную копию текущих данных.
- Мигрирует все данные в новый бэкенд.
- Перезапустится.
> Целевая база данных должна быть пустой перед переключением. Всегда используйте **Проверить подключение** перед переключением.
### Локальный PostgreSQL (управляется панелью)
Режим **Локальный (управляется панелью)** — панель устанавливает и настраивает PostgreSQL автоматически (только Linux, root):
```bash
# Панель использует postgres-manager.sh внутри себя.
# Ручная настройка PostgreSQL не требуется.
```
### Внешний PostgreSQL
Подключение к существующему серверу PostgreSQL 13+:
1. Создайте отдельную БД и пользователя.
2. Введите параметры подключения в Настройки → База данных.
3. Нажмите **Проверить подключение**, затем **Переключить базу данных**.
### Переопределение через переменные окружения
Для Docker и IaC-деплоев можно управлять бэкендом через переменные окружения:
```bash
XUI_DB_DRIVER=postgres # или: sqlite
XUI_DB_HOST=127.0.0.1
XUI_DB_PORT=5432
XUI_DB_NAME=x-ui
XUI_DB_USER=x-ui
XUI_DB_PASSWORD=change-me
XUI_DB_SSLMODE=disable # или: require, verify-ca, verify-full
XUI_DB_MODE=external # или: local
XUI_DB_PATH=/etc/x-ui/db/x-ui.db # только для SQLite
```
Если задана любая переменная `XUI_DB_*`, раздел «База данных» в UI становится read-only.
### Резервное копирование и восстановление
| Формат | Совместим с | Когда использовать |
|---|---|---|
| **Портативный** (`.xui-backup`) | SQLite + PostgreSQL | Переключение бэкендов, резервные копии через Telegram-бот, долгосрочное хранение |
| **Нативный SQLite** (`.db`) | Только SQLite | Быстрый файловый бэкап при активном SQLite |
- Telegram-бот отправляет **портативную резервную копию** автоматически — это работает независимо от активного бэкенда.
- Портативные копии можно импортировать на SQLite и на PostgreSQL.
- Устаревшие `.db`-файлы от старых версий 3x-ui можно импортировать даже при активном PostgreSQL.
## Особая благодарность
- [alireza0](https://github.com/alireza0/)
## Благодарности
- [Iran v2ray rules](https://github.com/chocolate4u/Iran-v2ray-rules) (Лицензия: **GPL-3.0**): _Улучшенные правила маршрутизации для v2ray/xray и v2ray/xray-clients со встроенными иранскими доменами и фокусом на безопасность и блокировку рекламы._
- [Russia v2ray rules](https://github.com/runetfreedom/russia-v2ray-rules-dat) (Лицензия: **GPL-3.0**): _Этот репозиторий содержит автоматически обновляемые правила маршрутизации V2Ray на основе данных о заблокированных доменах и адресах в России._
## Поддержка проекта
**Если этот проект полезен для вас, вы можете поставить ему**:star2:
## Звезды с течением времени
[](https://starchart.cc/MHSanaei/3x-ui)