Remnawave
В данном разделе описывается процесс интеграции SHM и Remnawave.
Remnawave - Решение для управления прокси-серверами и пользователями
Remnawave, созданное на основе Xray Core, предоставляет широкие возможности для управления пользователями и прокси-серверами. Легко добавляйте пользователей, узлы, настраивайте Xray и многое другое с помощью многофункционального REST API на базе NestJS.
Принцип взаимодействия SHM и Remnawave
flowchart LR
subgraph SHM
E[Событие] --> TPL(Шаблон)
API --> DB[(Хранилище\nключей)]
end
subgraph Remnawave
MZ(API)
TPL --> MZ
API --- MZ
end
Инсталляция сервера Remnawave
Remnawave предлогает широкий выбор установки с разными обратными прокси, поэтому нет явного шаблона/скрипта установки Remnawave
Интеграция
Шаблоны для Remnawave есть в открытом доступе так же для продажи, так как шаблоны отличаются исходя от версии Remnawave тут шаблона нет.
- Создайте в SHM шаблон с именем
remnawaveи заполните его. - Создайте отдельную группу серверов, например:
Remnawave group - Создайте новый сервер и включте его в группу
Remnawave group. В качестве транспорта укажите SSH и укажите наш шаблонremnawave. - Добавьте ключ SSH на ваш сервер, проверьте, что сервер работает (кнопка TEST).
- В
settingsсервера пропишите нужные переменные, например:hostиtokenдля работы с API Remnawave - Создав несколько серверов в группе
Remnawave groupможно вsettingsсервера прописать UUID Сквада/ов, чтобы отдавать разные конфигурации пользователям. - Создайте все нужные Cобытия в SHM, и укажите там нашу группу серверов (
Remnawave group). Укажите категорию услуг:vpn-remnawave - Создайте и настройте Услуги. Укажите категорию услуг:
vpn-remnawave. - Создайте API токен в Remnawave и пропишите его например в
settingsсервера/ов
Доступ к данным пользователей
После создания подписки “ключей” данные сохраняются в Хранилище SHM.
Получить данные можно разными способами.
vpn_remnawave_прописан как пример, вы можете указать свой префикс.
Получить данные через API SHM:
- URL для пользователя:
/shm/v1/storage/manage/vpn_remnawave_$USI - URL для Админа:
/shm/v1/storage/manage/vpn_remnawave_$USI?user_id=$USER_ID
Где $USI - идентификатор услуги пользователя, $USER_ID - идентификатор пользователя
Получение данных в Шаблонах SHM:
- Пример получения ключа для приложения Happ:
{{ storage.read('name','vpn_remnawave_' _ us.id ).happ.cryptoLink }} - Пример получения ссылки для подписку:
{{ storage.read('name','vpn_remnawave_' _ us.id ).response.subscriptionUrl }}
В Telegram bot используйте
args.0вместоus.id.
Telegram bot
Настройте Telegram bot, если хотите продавать услуги через Telegram.
- Пример вывода ссылку на подписку в виде QR-кода внутри Telegram bot
<% CASE '/show_sub_qr' %>
{{ subscriptionUrl = storage.read('name','vpn_remnawave_' _ args.0 ).response.subscriptionUrl }}
{{ tg_api( printQrCode = {
data = subscriptionUrl
parameters = {
caption = "Отсканируйте QR-код"
}
}
) }}