REMNAWAVE REVERSE PROXY
🚀 Major Changes
📦 Модульная архитектура скрипта
- Скрипт полностью реорганизован в модульную структуру для удобства поддержки и расширения
- Модули разделены по категориям:
src/nginx/*.sh— установка с веб-сервером Nginxsrc/caddy/*.sh— установка с веб-сервером Caddysrc/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.1→18.3valkey: 9.0.0-alpine→9.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_IDTELEGRAM_NOTIFY_NODES_THREAD_IDTELEGRAM_NOTIFY_CRM_THREAD_ID
Теперь
thread_idуказывается в основной переменной через двоеточие:"-100123:80"
🌍 Обновлены переводы
- Улучшены и актуализированы все тексты сообщений в русском и английском языках