REMNAWAVE REVERSE PROXY
🚀 Основные изменения
🧩 Новые режимы установки: только панель и отдельная страница подписки
Меню «Установка компонентов Remnawave» теперь выглядит так:
1. Установить панель и ноду на один сервер
2. Установить панель и страницу подписки
3. Добавить ноду в панель
4. Установить только ноду
5. Установить только панель
6. Установить только страницу подписки
- Установить панель и страницу подписки — прежний полный пункт (переименован, ставит панель + страницу подписки).
- Установить только панель — то же самое, но без контейнера страницы подписки: не спрашивает саб-домен, не создаёт API-токен и не пишет блок подписки в конфиг веб-сервера.
- Установить только страницу подписки — страница подписки на отдельном сервере по официальной схеме docs.rw (separate server). Работает с Nginx и Caddy.
Для отдельной страницы подписки скрипт спрашивает:
- домен страницы подписки;
- домен панели — по нему страница обращается к API (
https://...); - API-токен панели (Настройки → API-токены);
- cookie панели в формате
ИМЯ=ЗНАЧЕНИЕ— та же пара, что в ссылке входаauth/login?.... Передаётся контейнеру какEGAMES_COOKIEи проходит cookie-защиту панели.
Проверка доступности после запуска принимает любой HTTP-ответ: страница по корню отвечает ошибкой по дизайну — валидны только ссылки вида https://sub.domain/<shortUuid>.
Раздел «Переустановить панель/ноду» поддерживает оба новых режима, при этом переустановка страницы подписки сносит только /opt/subscription, не трогая панель и ноду. «Удалить скрипт и данные» тоже теперь чистит /opt/subscription.
📊 Понятный вывод установки
- Шаги установки выводятся в едином виде:
[ * ]— выполняется,[ ✓ ]— готово.
🔧 Надёжность API-запросов
- Таймауты curl (
--connect-timeout 10 --max-time 60) — зависшая панель больше не вешает установку бесконечно. X-Forwarded-For— чистый127.0.0.1вместо «домен:порт».- Тела логина и регистрации собираются через
jq— спецсимволы в пароле не ломают JSON. - Файл сохранённого токена получает права
600.
🛡️ Диагностика не загрязняет значения
Ошибки API-функций выводятся в stderr и возвращают ненулевой код — цветные сообщения больше не попадают в переменные, захватываемые через $(...) (токены, ключи, UUID), а вызов не «успевает» с пустым значением.
✅ Переспрос вместо молчаливого отказа
- Подтверждения y/n (удаление скрипта, переустановка и др.) переспрашивают при опечатке — случайный Enter или лишняя клавиша больше не считается «нет».
- Метод генерации сертификатов тоже переспрашивает: неверный ответ больше не выбрасывает из установки с потерей уже введённых доменов и данных.
⏰ Cron без обрывов установки
Недоступный или незапускаемый cron (контейнеры, образы без systemd) больше не прерывает установку — выводится предупреждение
🧹 Безопасное удаление
- Глобальный
docker system prune -a --volumesзаменён наdocker image prune -f: остановленные контейнеры и тома сторонних сервисов пользователя больше не удаляются вместе с панелью. - Снос compose-каталогов вынесен в общий хелпер
wipe_compose_dir.
📦 Прочее
- Из правил роутинга Xray убран легаси-параметр
"type": "field"(не входит в текущую спецификацию). - Убраны неиспользуемые ключи локализации.
🌍 Обновлены переводы
Новые строки для страницы подписки, переспросов ввода и cron (EN/RU).