github eGamesAPI/remnawave-reverse-proxy v3.0.0

10 hours ago

REMNAWAVE REVERSE PROXY

🚀 Major Changes

📦 Модульная архитектура скрипта

  • Скрипт полностью реорганизован в модульную структуру для удобства поддержки и расширения
  • Модули разделены по категориям:
    • src/nginx/*.sh — установка с веб-сервером Nginx
    • src/caddy/*.sh — установка с веб-сервером Caddy
    • src/modules/*.sh — общие модули (add_node, warp, ipv6, manage_panel)
    • src/api/remnawave_api.sh — API функции для работы с панелью
    • src/lang/*.sh — языковые файлы (en, ru)
  • Автоматическая загрузка и обновление модулей при обновлении скрипта

🌐 Новый веб-сервер Caddy

  • Добавлена поддержка Caddy 2.11.2 в качестве альтернативы Nginx
  • Работает через Unix-сокет (/dev/shm/nginx.sock) аналогично Nginx
  • Автоматическое получение и продление SSL-сертификатов (встроенный ACME)
  • Доступен для всех режимов установки: панель+нода, только панель, только нода

🔐 OAuth2 Telegram авторизация

  • Добавлена поддержка Telegram OAuth для входа в панель

Nginx конфигурация (добавляется в блок server панели):

# OAuth2 Telegram login
location ^~ /oauth2/ {
    if ($http_referer !~ "^https://oauth\.telegram\.org/") {
        return 444;
    }

    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;
}

Caddy конфигурация (автоматически добавляется в Caddyfile):

@oauth2 {
    path /oauth2/*
    header Referer https://oauth.telegram.org/*
}

handle @oauth2 {
    reverse_proxy {BACKEND_URL} {
        header_up Host {host}
    }
}

@oauth2_bad {
    path /oauth2/*
    not header Referer https://oauth.telegram.org/*
}

handle @oauth2_bad {
    abort
}

⚠️ Для существующих установок: Добавьте конфигурацию вручную в nginx.conf или Caddyfile


🔧 Оптимизация Docker Compose

  • Внедрены YAML anchors для уменьшения дублирования конфигурации:
x-common: &common
  ulimits:
    nofile:
      soft: 1048576
      hard: 1048576
  restart: always

x-networks: &networks
  networks:
    - remnawave-network

x-logging: &logging
  logging:
    driver: json-file
    options:
      max-size: 100m
      max-file: 5

x-env: &env
  env_file: .env
  • Сервисы используют комбинации anchors: <<: [*common, *logging, *env, *networks]
  • Убрано дублирование ulimits, restart, logging для каждого сервиса
  • Увеличен лимит логов с 30m до 100m на файл
  • Обновлены версии образов:
    • postgres: 18.118.3
    • valkey: 9.0.0-alpine9.0.3-alpine
  • Добавлен volume valkey-socket для Unix-сокета Redis
  • Redis настроен на работу через Unix-сокет (--unixsocket /var/run/valkey/valkey.sock)
  • Убрано жёсткое задание подсети для remnawave-network

🔌 NET_ADMIN для ноды

  • Добавлен cap_add: NET_ADMIN для контейнера remnanode
  • Необходимо для работы плагинов

📝 Обновления .env файла

Новые переменные:

Переменная Описание
REDIS_SOCKET Путь к Unix-сокету для подключения к Redis (Valkey): /var/run/valkey/valkey.sock
TELEGRAM_BOT_PROXY Опциональный прокси для Telegram бота (формат: socks5://user:password@host:port)
TELEGRAM_NOTIFY_SERVICE Chat_id для сервисных уведомлений
TELEGRAM_NOTIFY_TBLOCKER Chat_id для уведомлений трафик-блокера
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED Включение уведомлений о неподключённых пользователях (true/false)
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS Интервалы в часах для уведомлений (например: [6, 24, 48])

Удалены переменные:

  • TELEGRAM_NOTIFY_USERS_THREAD_ID
  • TELEGRAM_NOTIFY_NODES_THREAD_ID
  • TELEGRAM_NOTIFY_CRM_THREAD_ID

Теперь thread_id указывается в основной переменной через двоеточие: "-100123:80"


🌍 Обновлены переводы

  • Улучшены и актуализированы все тексты сообщений в русском и английском языках

Don't miss a new remnawave-reverse-proxy release

NewReleases is sending notifications on new releases.