Skip to main content

Обзор

eGames — это reverse-proxy для защиты панели Remnawave. При установке через скрипт eGames панель закрывается cookie-авторизацией: все HTTP-запросы без корректной cookie отклоняются. Бот поддерживает работу с защищенной панелью — для этого нужно указать секретный ключ, который передается как cookie при каждом запросе к API.

Настройка бота

Шаг 1: Получение секретного ключа

При установке Remnawave через скрипт eGames в процессе настройки генерируется cookie-ключ. Его можно найти в конфигурации nginx reverse-proxy:
  1. Откройте конфигурацию nginx на сервере с панелью:
    # Расположение зависит от установки, обычно:
    nano /etc/nginx/nginx.conf
    # или
    nano /etc/nginx/conf.d/remnawave.conf
    
  2. Найдите секцию map $http_cookie $auth_cookie — в ней указаны имя и значение cookie
  3. Запишите их в формате ИМЯ:ЗНАЧЕНИЕ

Шаг 2: Настройка .env бота

REMNAWAVE_API_URL=https://panel.example.com
REMNAWAVE_API_KEY=your_api_key_here
REMNAWAVE_SECRET_KEY=XXXXXXX:DDDDDDDD
Где:
  • REMNAWAVE_API_URL — публичный адрес панели
  • REMNAWAVE_API_KEY — API-ключ из панели Remnawave
  • REMNAWAVE_SECRET_KEY — cookie в формате имя:значение
REMNAWAVE_AUTH_TYPE менять не нужно. Значение по умолчанию api_key работает с eGames. Cookie передается автоматически при наличии REMNAWAVE_SECRET_KEY.

Шаг 3: Перезапуск бота

docker compose up -d --build

Проверка

Выполните синхронизацию серверов через админ-панель бота. Если серверы загрузились — авторизация работает. Если в логах ошибки 401 Unauthorized или 403 Forbidden:
  • Проверьте формат REMNAWAVE_SECRET_KEY (должен быть имя:значение через двоеточие)
  • Убедитесь что значение совпадает с тем, что в nginx-конфигурации панели
  • Проверьте что REMNAWAVE_API_KEY валидный

Формат секретного ключа

ФорматПримерРезультат
имя:значениеmysecret:abc123defCookie: mysecret=abc123def
только_значениеsecret_key_nameCookie: secret_key_name=secret_key_name
Рекомендуется формат имя:значение. Если в значении есть двоеточие — разделение происходит по первому двоеточию.

Открытие внешнего API

По умолчанию eGames reverse-proxy блокирует внешний доступ к API панели. Если бот находится на отдельном сервере (не в одной Docker-сети с панелью), нужно открыть доступ к API. Добавьте в конфигурацию nginx на сервере с панелью:
location ^~ /api/ {
    proxy_http_version 1.1;
    proxy_pass http://remnawave;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
}
После открытия внешнего API обязательно отключите документацию API на панели: установите IS_DOCS_ENABLED=false в .env файле Remnawave, чтобы Swagger-документация не была доступна из интернета.

Отключение eGames авторизации

Если вы хотите отключить cookie-защиту eGames и перейти на прямое подключение к панели:

Вариант 1: Бот в одной Docker-сети с панелью

Используйте внутренний адрес без cookie:
REMNAWAVE_API_URL=http://remnawave:3000
REMNAWAVE_API_KEY=your_api_key_here
REMNAWAVE_SECRET_KEY=
Бот обращается к панели напрямую через Docker-сеть, минуя reverse-proxy. Cookie не нужен.

Вариант 2: Бот на отдельном сервере

Замените eGames reverse-proxy на Caddy с caddy-security:
REMNAWAVE_API_URL=https://panel.example.com
REMNAWAVE_API_KEY=your_api_key_here
REMNAWAVE_AUTH_TYPE=caddy
REMNAWAVE_CADDY_TOKEN=base64_encoded_credentials
REMNAWAVE_SECRET_KEY=
Или используйте Basic Auth:
REMNAWAVE_API_URL=https://panel.example.com
REMNAWAVE_API_KEY=your_api_key_here
REMNAWAVE_AUTH_TYPE=basic
REMNAWAVE_USERNAME=admin
REMNAWAVE_PASSWORD=password
REMNAWAVE_SECRET_KEY=

Вариант 3: Убрать reverse-proxy полностью

Если панель доступна по прямому HTTPS (например, за Cloudflare):
REMNAWAVE_API_URL=https://panel.example.com
REMNAWAVE_API_KEY=your_api_key_here
REMNAWAVE_SECRET_KEY=
Без reverse-proxy панель Remnawave остается без дополнительного слоя защиты. Убедитесь что доступ ограничен другими средствами (Cloudflare Access, IP whitelist, VPN).

Все методы авторизации

МетодREMNAWAVE_AUTH_TYPEДополнительные переменныеКогда использовать
API Keyapi_key (по умолчанию)Прямое подключение без reverse-proxy
eGames (cookie)api_keyREMNAWAVE_SECRET_KEYПанель за eGames reverse-proxy
Basic AuthbasicREMNAWAVE_USERNAME, REMNAWAVE_PASSWORDПанель с Basic Auth защитой
Caddy SecuritycaddyREMNAWAVE_CADDY_TOKENПанель за Caddy с caddy-security
REMNAWAVE_SECRET_KEY работает независимо от REMNAWAVE_AUTH_TYPE — cookie отправляется при любом типе авторизации, если ключ заполнен.

Устранение проблем

401 Unauthorized

  • Проверьте REMNAWAVE_API_KEY — скопируйте заново из панели
  • Проверьте REMNAWAVE_SECRET_KEY — формат имя:значение

403 Forbidden

  • Reverse-proxy блокирует запрос. Убедитесь что cookie совпадает
  • Если бот на отдельном сервере — проверьте что nginx location /api/ настроен

Connection refused / timeout

  • Проверьте доступность REMNAWAVE_API_URL с сервера бота:
    curl -v https://panel.example.com/api/health
    
  • Если бот в Docker — убедитесь что сети пересекаются

Серверы не синхронизируются

  • Проверьте логи бота: docker compose logs -f bot
  • Попробуйте ручную синхронизацию через админ-панель
  • Убедитесь что API панели отвечает на запросы