3x-ui/CHANGES_SUMMARY.md
Konstantin Pichugin d7175e7803 multi-node support
2026-01-06 00:12:53 +03:00

4.2 KiB
Raw Blame History

Сводка изменений для Multi-Node архитектуры

Реализованные компоненты

1. Node-сервис (Worker)

  • node/main.go - точка входа
  • node/api/server.go - REST API сервер
  • node/xray/manager.go - управление XRAY процессом
  • node/Dockerfile - Docker образ
  • node/docker-compose.yml - конфигурация Docker Compose
  • node/README.md - документация

2. Модели базы данных

  • database/model/model.go - добавлены:
    • Node - модель ноды
    • InboundNodeMapping - соответствие inbound → node
  • database/db.go - добавлены модели в миграцию

3. Сервисы панели

  • web/service/setting.go - добавлены методы:
    • GetMultiNodeMode() - получить режим работы
    • SetMultiNodeMode(enabled) - установить режим работы
  • web/service/node.go - новый сервис для управления нодами
  • web/service/xray.go - модифицирован для поддержки multi-mode:
    • Проверка режима работы
    • В multi-mode: отправка конфигураций на ноды
    • В single-mode: работает как раньше
  • sub/subService.go - обновлён для генерации подписок с endpoint нод

4. Контроллеры

  • web/controller/node.go - новый контроллер для управления нодами
  • web/controller/xui.go - добавлен маршрут /nodes и NodeController

🔄 Логика работы

Single-Mode (по умолчанию)

  1. Все работает как раньше
  2. Локальный XRAY Core используется
  3. Подписки генерируются с endpoint панели

Multi-Mode

  1. Включение через настройки панели
  2. Добавление нод через UI
  3. Назначение инбаундов нодам
  4. Конфигурации отправляются на ноды через REST API
  5. Подписки генерируются с endpoint нод

📝 Файлы для изменения в UI

Для полной реализации потребуется обновить фронтенд:

  1. Настройки панели (web/html/settings/...):

    • Добавить тумблер "Multi-Node Mode"
  2. Новая страница Nodes (web/html/nodes.html):

    • Список нод
    • Добавление/редактирование/удаление нод
    • Проверка здоровья нод
  3. Страница Inbounds (web/html/inbounds.html):

    • Выпадающий список выбора ноды (только в multi-mode)
  4. Переводы (web/translation/...):

    • Добавить переводы для новых элементов UI

🚀 Следующие шаги

  1. Обновить фронтенд для управления нодами
  2. Добавить периодическую проверку здоровья нод (cron job)
  3. Добавить логирование операций с нодами
  4. Добавить валидацию конфигураций перед отправкой на ноды
  5. Добавить обработку ошибок при недоступности нод

⚠️ Важные замечания

  1. Совместимость: Все изменения обратно совместимы с single-mode
  2. Миграция БД: Новые таблицы создаются автоматически при первом запуске
  3. Безопасность: API ключи нод должны быть надёжными
  4. Сеть: Ноды должны быть доступны с панели

📚 Документация

  • MULTI_NODE_ARCHITECTURE.md - полная документация по архитектуре
  • node/README.md - документация Node-сервиса