Проблема / Problem
В текущей версии awgram один экземпляр бота может управлять только одним сервером. Это создаёт ограничения для следующих сценариев использования:
Провайдеры VPN:
• Управление несколькими VPS с для разных регионов.
• Необходимость создавать отдельного бота для каждого сервера.
• Сложность переключения между серверами.
Корпоративные пользователи:
• Разные серверы для разных отделов или проектов.
• Отсутствие единой точки управления.
Тестирование:
• Невозможность управлять production и staging серверами из одного интерфейса.
• Сложность сравнения конфигураций и клиентов между серверами.
Масштабирование:
• При росте количества клиентов требуется распределение нагрузки
• Нет возможности мигрировать клиентов между серверами
Текущие ограничения:
❌ Один бот = один сервер.
❌ Нет переключения между серверами.
❌ Нет единой статистики по всем серверам.
❌ Нет возможности миграции клиентов.
❌ Каждый сервер требует отдельной установки и настройки бота.
Желаемое поведение / Desired behavior
1. Архитектура Multi-Server
Добавить возможность подключать один экземпляр бота к нескольким серверам
manage_amneziawg.sh.
Основные компоненты:
┌─────────────────────────────────────┐
│ Telegram Bot (awgram) │
│ Единый интерфейс │
└─────────────────────────────────────┘
│
▼
┌─────────────────────┐
│ Менеджер серверов │
│ (Server Manager) │
└─────────────────────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│Сервер 1 │ │Сервер 2 │ │Сервер 3 │
│(EU) │ │(US) │ │(ASIA) │
└─────────┘ └─────────┘ └─────────┘
2. Управление серверами
Новая команда: /servers
Показать список всех подключённых серверов и управлять ими.
🌐 УПРАВЛЕНИЕ СЕРВЕРАМИ
Активные серверы (3/5):
┌──────────────────────────────────────────┐
│ 🟢 SERVER-EU (основной) │
│ Статус: ✅ Онлайн │
│ Клиентов: 15/50 │
│ Трафик: 125 GB │
│ Нагрузка: CPU 23% RAM 45% │
│ Регион: Европа (Frankfurt) │
│ Подключён: 15.07.2026 │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│ 🟢 SERVER-US │
│ Статус: ✅ Онлайн │
│ Клиентов: 8/30 │
│ Трафик: 67 GB │
│ Нагрузка: CPU 12% RAM 32% │
│ Регион: США (New York) │
│ Подключён: 20.07.2026 │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│ 🔴 SERVER-ASIA │
│ Статус: ❌ Оффлайн │
│ Клиентов: 0/20 │
│ Трафик: 0 GB │
│ Регион: Азия (Singapore) │
│ Последнее подключение: 25.07.2026 │
└──────────────────────────────────────────┘
[➕ Добавить сервер] [✏️ Редактировать] [🗑️ Удалить]
[📊 Общая статистика] [⚙️ Настройки]
Добавление нового сервера:
➕ ДОБАВЛЕНИЕ СЕРВЕРА
Введите параметры сервера:
Имя сервера: SERVER-EU
Регион: Европа (Frankfurt)
IP-адрес: 1.2.3.4
Порт SSH: 22
Пользователь: root
Способ подключения:
[🔑 SSH ключ] [🔐 Пароль]
Метод управления:
[📁 Локальный manage скрипт]
[🌐 API (REST)]
[✅ Добавить] [❌ Отмена]
3. Переключение между серверами
В главном меню:
🏠 ГЛАВНОЕ МЕНЮ
Текущий сервер: SERVER-EU (основной)
[👥 Клиенты] [📊 Статистика] [⚙️ Настройки]
[🌐 Переключить сервер]
▼
SERVER-EU (основной) ✅
SERVER-US
SERVER-ASIA ❌
➕ Добавить сервер
Переключение контекста:
При выборе сервера все команды выполняются в контексте выбранного сервера.
В списке клиентов показываются клиенты только текущего сервера.
Статистика и мониторинг относятся к текущему серверу.
Индикатор текущего сервера отображается во всех меню.
4. Унифицированные команды
Все существующие команды работают с текущим выбранным сервером:
👥 КЛИЕНТЫ (SERVER-EU)
Всего: 15 | Онлайн: 8 | Оффлайн: 5 | Просрочено: 2
🟢 📱 phone (онлайн, 1.2GB) — 2 мин назад
🔴 💻 laptop (оффлайн) — 2 дня назад
🟢 📺 tv (онлайн, 5.1GB) — 30 сек назад
[➕ Добавить] [🔄 Обновить] [📊 Статистика]
🌐 Текущий сервер: SERVER-EU [Изменить]
Новые команды для работы с серверами:
/servers - Показать все серверы
/server_add - Добавить новый сервер
/server_remove <name> - Удалить сервер
/server_switch <name> - Переключиться на сервер
/server_info <name> - Детальная информация о сервере
/server_status - Статус текущего сервера
/server_sync - Синхронизировать данные с сервером
/server_migrate - Миграция клиентов между серверами
5. Общая статистика по всем серверам
Новая команда: /servers_stats
Показать сводную информацию по всем серверам:
📊 ОБЩАЯ СТАТИСТИКА ПО ВСЕМ СЕРВЕРАМ
Общие показатели:
- Всего серверов: 3
- Всего клиентов: 23 (лимит: 100)
- Онлайн клиентов: 12
- Суммарный трафик: 192 GB
По серверам:
┌────────────────────────────────────────────────┐
│ SERVER-EU │ 15 клиентов │ 125 GB │ 🟢 ✅ │
│ SERVER-US │ 8 клиентов │ 67 GB │ 🟢 ✅ │
│ SERVER-ASIA│ 0 клиентов │ 0 GB │ 🔴 ❌ │
└────────────────────────────────────────────────┘
Нагрузка по серверам:
- Средний CPU: 18% (макс: 23% на SERVER-EU)
- Средний RAM: 39% (макс: 45% на SERVER-EU)
- Средний диск: 22% (макс: 28% на SERVER-US)
[📊 Подробно] [📥 Экспорт] [🔄 Обновить]
6. Миграция клиентов между серверами
Новая команда: /server_migrate
Возможность перемещать клиентов между серверами.
🔄 МИГРАЦИЯ КЛИЕНТОВ
Выберите клиента для миграции:
[ ] 📱 phone (SERVER-EU)
[ ] 💻 laptop (SERVER-EU)
[ ] 📺 tv (SERVER-EU)
[ ] 📱 tablet (SERVER-US)
Выберите сервер назначения:
[ ] SERVER-EU (15 клиентов)
[✅] SERVER-US (8 клиентов)
[ ] SERVER-ASIA (0 клиентов)
Параметры миграции:
[✅] Сохранить IP-адрес клиента
[✅] Сохранить срок действия
[✅] Сохранить настройки (DNS, Keepalive)
[🚀 Начать миграцию] [❌ Отмена]
Процесс миграции:
- Экспорт клиента с исходного сервера
- Импорт клиента на сервер назначения
- Обновление конфига клиента (новый endpoint)
- Отправка нового конфига клиенту
- Удаление клиента с исходного сервера
Пользовательские сценарии
- Провайдер VPN управляет тремя серверами в разных регионах. Через одного бота переключается между ними, добавляет клиентов на нужный сервер, отслеживает общую статистику и нагрузку.
- Корпоративный администратор управляет
production и staging серверами. На staging тестирует новые настройки, потом применяет их на production. В любой момент может сравнить конфигурации.
- Администратор замечает, что один сервер перегружен. Переносит часть клиентов на другой сервер через
/server_migrate, балансируя нагрузку.
- Администратор добавляет новый сервер в другом дата-центре через
/server_add, указывая параметры подключения. Бот автоматически настраивает управление новым сервером.
- При падении сервера администратор видит статус 🔴 в списке серверов. Быстро переключается на резервный сервер и переводит клиентов через миграцию.
- Администратор получает общую статистику по всем серверам: видит, где больше клиентов, где выше нагрузка, и может планировать масштабирование.
Ожидаемые результаты
Единая точка управления: Один бот для всех серверов.
Масштабируемость: Легкое добавление новых серверов.
Балансировка: Распределение клиентов между серверами.
Отказоустойчивость: Быстрое переключение на резервный сервер.
Прозрачность: Полная видимость всех серверов и их состояния.
Связанные Issues
· #32 — Feature Request: Расширенный мониторинг сервера
· #35 — Feature Request: Умные бэкапы и восстановление
· #20 — Feature Request: Мультитенантность (Группы клиентов)
Альтернативы / Alternatives considered
No response
Проблема / Problem
В текущей версии awgram один экземпляр бота может управлять только одним сервером. Это создаёт ограничения для следующих сценариев использования:
Провайдеры VPN:
Корпоративные пользователи:
Тестирование:
Масштабирование:
Текущие ограничения:
Желаемое поведение / Desired behavior
1. Архитектура Multi-Server
Добавить возможность подключать один экземпляр бота к нескольким серверам
manage_amneziawg.sh.
Основные компоненты:
2. Управление серверами
Новая команда:
/serversПоказать список всех подключённых серверов и управлять ими.
Добавление нового сервера:
3. Переключение между серверами
В главном меню:
Переключение контекста:
4. Унифицированные команды
Все существующие команды работают с текущим выбранным сервером:
Новые команды для работы с серверами:
5. Общая статистика по всем серверам
Новая команда:
/servers_statsПоказать сводную информацию по всем серверам:
6. Миграция клиентов между серверами
Новая команда:
/server_migrateВозможность перемещать клиентов между серверами.
Процесс миграции:
Пользовательские сценарии
Ожидаемые результаты
Связанные Issues
· #32 — Feature Request: Расширенный мониторинг сервера
· #35 — Feature Request: Умные бэкапы и восстановление
· #20 — Feature Request: Мультитенантность (Группы клиентов)
Альтернативы / Alternatives considered
No response