- Add SQLite/PostgreSQL switching via panel UI and env variables - Introduce portable .xui-backup format for cross-backend backups - Add connection pooling and PrepareStmt cache for PostgreSQL - Fix raw SQL double-quote bug breaking queries on PostgreSQL - Fix GORM record-not-found log spam on every Xray config poll - Add database section to Settings with full EN/RU i18n
8.4 KiB
English | فارسی | العربية | 中文 | Español | Русский
3X-UI — продвинутая панель управления с открытым исходным кодом на основе веб-интерфейса, разработанная для управления сервером Xray-core. Предоставляет удобный интерфейс для настройки и мониторинга различных VPN и прокси-протоколов.
Important
Этот проект предназначен только для личного использования, пожалуйста, не используйте его в незаконных целях и в производственной среде.
Как улучшенная версия оригинального проекта X-UI, 3X-UI обеспечивает повышенную стабильность, более широкую поддержку протоколов и дополнительные функции.
Быстрый старт
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
Полную документацию смотрите в вики проекта.
Базы данных
3X-UI поддерживает SQLite и PostgreSQL как взаимозаменяемые бэкенды. Вся логика приложения написана через GORM — ORM для Go с поддержкой множества СУБД, — поэтому запросы работают одинаково на любом движке. Переключиться между бэкендами можно в любой момент через UI панели без потери данных.
Выбор бэкенда
| SQLite | PostgreSQL | |
|---|---|---|
| Настройка | Ноль конфигурации, файловая БД | Требует работающий PG-сервер |
| Подходит для | Один узел, малый трафик | Несколько узлов, высокая нагрузка |
| Резервные копии | Портативный + нативный файл | Только портативный |
Переключение бэкенда через UI
- Откройте Настройки → Панель → База данных.
- Выберите бэкенд (
SQLiteилиPostgreSQL) и заполните параметры подключения. - Нажмите Проверить подключение.
- Нажмите Переключить базу данных — панель автоматически:
- Сохранит портативную резервную копию текущих данных.
- Мигрирует все данные в новый бэкенд.
- Перезапустится.
Целевая база данных должна быть пустой перед переключением. Всегда используйте Проверить подключение перед переключением.
Локальный PostgreSQL (управляется панелью)
Режим Локальный (управляется панелью) — панель устанавливает и настраивает PostgreSQL автоматически (только Linux, root):
# Панель использует postgres-manager.sh внутри себя.
# Ручная настройка PostgreSQL не требуется.
Внешний PostgreSQL
Подключение к существующему серверу PostgreSQL 13+:
- Создайте отдельную БД и пользователя.
- Введите параметры подключения в Настройки → База данных.
- Нажмите Проверить подключение, затем Переключить базу данных.
Переопределение через переменные окружения
Для Docker и IaC-деплоев можно управлять бэкендом через переменные окружения:
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.
Особая благодарность
Благодарности
- Iran v2ray rules (Лицензия: GPL-3.0): Улучшенные правила маршрутизации для v2ray/xray и v2ray/xray-clients со встроенными иранскими доменами и фокусом на безопасность и блокировку рекламы.
- Russia v2ray rules (Лицензия: GPL-3.0): Этот репозиторий содержит автоматически обновляемые правила маршрутизации V2Ray на основе данных о заблокированных доменах и адресах в России.
Поддержка проекта
Если этот проект полезен для вас, вы можете поставить ему🌟