Backup and Restore
Пункт Backup and Restore главного меню подключает инструмент distillium remnawave-backup-restore. Он снимает резервную копию всей панели Remnawave: базу PostgreSQL и директорию установки со всеми конфигурациями. Копию можно вернуть на тот же сервер или развернуть на новом, делать вручную или по расписанию, отправлять в Telegram, Google Drive или S3-хранилище. Старые копии подчищаются сами по политике хранения.
Что попадает в копию
Заголовок раздела «Что попадает в копию»- База данных. В режиме Docker дамп снимается командой
pg_dumpallпрямо внутри контейнераremnawave-db, поэтому в копию попадает и база, и роли с глобальными настройками. Для внешней PostgreSQL инструмент поднимает одноразовый контейнерpostgresи снимает дамп по сети, SSL-режим настраивается. - Директория панели. Архивируется целиком, кроме временных файлов:
*.log,*.tmpи.gitисключаются. - Telegram-бот магазина (опционально). Если включён бэкап бота, его база и директория добавляются в тот же архив.
Всё складывается в один файл вида remnawave_backup_full_2026-10-04_12_00_00.tar.gz. Слово в имени (full, panel, bot) сразу показывает состав. Внутри архива дамп базы, архив директории и файл backup_meta.info с версией панели, версией скрипта и типом дампа: при восстановлении инструмент сверяет эти данные с текущим режимом и предупредит о несовпадении.
Выполните на сервере панели:
remnawave_reverse-
В главном меню выберите пункт
8:REMNAWAVE REVERSE-PROXY by eGames Wiki: https://wiki.egam.es/ 5.Xray Checker: мониторинг подписки 6.Кастомные расширения от legiz 7.WARP Native 8.Backup and Restore 0.Выход Выберите действие (0-13):
-
При первом запуске модуль скачивает
backup-restore.shс двух независимых зеркал и сверяет контрольные суммы: файл запускается только когда оба источника отдали одинаковые байты. Если проверки не сошлись, запуск отменяется с сообщением «Скрипт не подтверждён двумя независимыми источниками, возможна подмена. Запуск отменён». -
Дальше инструмент переносит сам себя в постоянный каталог и перезапускается уже оттуда:
[INFO] Configuration not found. Script launched from temporary location. [INFO] Moving script to main install directory: /opt/rw-backup-restore/backup-restore.sh... [SUCCESS] Script successfully moved to /opt/rw-backup-restore/backup-restore.sh. [ACTION] Restarting script from new location to complete setup.
Повторные запуски пункта 8 сразу открывают установленную копию через команду rw-backup, скачивания не происходит.
Первый запуск
Заголовок раздела «Первый запуск»-
Выберите язык интерфейса:
Select language / Выберите язык: 1.Русский 2.English [?]: 1
-
Выберите режим работы.
Полныйкопирует панель (бот добавляется позже по желанию),Только Ботнужен, когда панель живёт на другом сервере:[ACTION] Выберите режим работы скрипта: 1.Полный (Панель Remnawave + Бот опционально) 2.Только Бот (если панель установлена на другом сервере) [?] Ваш выбор: 1
-
Настройка Telegram. Токен созданного в @BotFather бота и ваш ID можно оставить пустыми: уведомления легко включить позже в настройках, но без них вы не узнаете о результатах автоматических бэкапов:
[INFO] Настройка уведомлений Telegram: [INFO] Создайте Telegram бота в @BotFather и получите API Token [INFO] Оставьте пустым чтобы пропустить, настроить можно позже в меню настроек. [WARN] Без Telegram вы не будете получать уведомления о бэкапах и обновлениях. Введите API Token: 1234567890:AA… [INFO] Введите Chat ID (для отправки в группу) или свой Telegram ID (для прямой отправки в бота) Chat ID/Telegram ID можно узнать у этого бота @username_to_id_bot Введите ID: 112233445 [INFO] Опционально: для отправки в определенный топик группы, введите ID топика (Message Thread ID) Оставьте пустым для общего потока или отправки напрямую в бота Введите Message Thread ID:
-
Имя пользователя базы данных панели (обычно подходит значение по умолчанию):
[INFO] Введите имя пользователя БД (по умолчанию postgres): Ввод: postgres
-
Укажите, где установлена панель:
[ACTION] Где установлена/устанавливается ваша панель Remnawave? 1./opt/remnawave 2./root/remnawave 3./opt/stacks/remnawave 4.Указать свой путь [?] Выберите вариант: 1
-
Готово. Конфигурация сохраняется в
/opt/rw-backup-restore/config.env, а для быстрого запуска создаётся командаrw-backup:[SUCCESS] Новая конфигурация сохранена в /opt/rw-backup-restore/config.env [INFO] Создание или обновление символической ссылки /usr/local/bin/rw-backup... [SUCCESS] Символическая ссылка успешно настроена.
Главное меню
Заголовок раздела «Главное меню»REMNAWAVE BACKUP & RESTORE by distillium Версия: 4.0.0 БД: Docker контейнер 1.Создание бэкапа вручную 2.Восстановление из бэкапа 3.Настройка бэкапа Telegram бота 4.Настройка автоматической отправки и уведомлений 5.Настройка способа отправки 6.Настройка конфигурации скрипта 7.Обновление скрипта 8.Удаление скрипта 0.Выход — Быстрый запуск: rw-backup доступен из любой точки системы [?] Выберите пункт:
Строка БД: под версией показывает текущее подключение: контейнер remnawave-db или внешняя PostgreSQL с адресом. Команда rw-backup запускает инструмент из любой точки системы без открытия главного меню скрипта, а rw-backup backup сразу делает копию без меню: так работает расписание.
Создание бэкапа
Заголовок раздела «Создание бэкапа»-
Выберите пункт
1. Инструмент снимет дамп базы, заархивирует директорию панели и соберёт итоговый архив:[INFO] Начинаю процесс создания резервной копии... [INFO] Режим подключения к БД: Docker контейнер (remnawave-db) [INFO] Создание PostgreSQL дампа и сжатие в файл... [SUCCESS] Дамп PostgreSQL успешно создан. [INFO] Архивирование директории Remnawave... [INFO] Архивирование директории /opt/remnawave... [SUCCESS] Директория Remnawave успешно заархивирована. [SUCCESS] Итоговый архив бэкапа успешно создан: /opt/rw-backup-restore/backup/remnawave_backup_full_2026-10-04_12_00_00.tar.gz [INFO] Очистка промежуточных файлов бэкапа... [SUCCESS] Промежуточные файлы удалены. [INFO] Отправка бэкапа (telegram)... [SUCCESS] Бэкап успешно отправлен в Telegram. [INFO] Применение политики хранения бэкапов (оставляем за последние 7 дней)... [SUCCESS] Политика хранения применена. Старые бэкапы удалены.
Несколько деталей поведения:
- Файл всегда остаётся на сервере в
/opt/rw-backup-restore/backup, отправка в Telegram или облако происходит дополнительно. - Telegram не принимает файлы больше 50 МБ: такой бэкап остаётся только локально, а в чат приходит уведомление о превышении лимита.
- Политика хранения по умолчанию держит локальные копии 7 дней, в S3 отдельно настраивается 30 дней.
- После отправки инструмент проверяет обновление самого себя и при наличии свежей версии присылает уведомление в Telegram.
Что приходит в Telegram
Заголовок раздела «Что приходит в Telegram»К копии прикладывается сообщение с составом, размером и версией панели:
💾 #backup_success ➖➖➖➖➖➖➖➖➖ ✅ Бэкап успешно создан 🌊 Remnawave: 3.7.0 🖥️ Только панель 🐳 БД: Docker 📁 БД + директория 📏 Размер: 24M 📅 Дата: 2026-10-04 12:00:00
Восстановление
Заголовок раздела «Восстановление»-
Выберите пункт
2и источник копии: локальные файлы или скачивание из S3:Восстановление из бэкапа [INFO] Режим подключения к БД: Docker контейнер (remnawave-db) Выберите источник бэкапа: 1.Локальные файлы 2.Скачать из S3 Storage 0.Вернуться в главное меню [?] Выберите пункт: 1
-
Локальные копии ищутся в
/opt/rw-backup-restore/backup: архив с другого сервера достаточно скопировать туда по SFTP. Из списка выбирается нужный файл:[INFO] Поместите файл бэкапа в папку: /opt/rw-backup-restore/backup Выберите файл для восстановления: 1)remnawave_backup_full_2026-10-04_12_00_00.tar.gz 2)remnawave_backup_full_2026-10-03_12_00_00.tar.gz 0)Вернуться в главное меню [?] Введите номер файла (0 для выхода): 1
-
Архив распаковывается, и инструмент показывает метаданные: тип дампа, версию скрипта и версию панели на момент копии:
[INFO] Распаковка архива бэкапа... [SUCCESS] Архив распакован [INFO] Метаданные бэкапа: тип дампа = dumpall [INFO] Версия скрипта бэкапа = 4.0.0 [INFO] Версия панели в бэкапе = 3.7.0
-
Если в архиве есть и база, и файлы, инструмент спросит объём восстановления:
[WARN] Найден бэкап панели. Восстановление перезапишет текущую БД. 1.Всё (БД + файлы) 2.Только база данных 3.Только файлы 0.Назад [?] Выберите пункт: 1 [?] Восстановить панель? (Y/N): y [INFO] Введите имя БД (по умолчанию postgres): Ввод: postgres
-
Ход восстановления: панель останавливается, база восстанавливается из дампа, контейнеры поднимаются заново:
[INFO] Ожидание готовности БД... [INFO] Восстановление базы данных... [SUCCESS] База данных успешно восстановлена. [INFO] Запуск остальных контейнеров... [SUCCESS] Панель успешно запущена. [SUCCESS] Панель готова. Нажмите Enter для продолжения... [SUCCESS] Процесс восстановления завершен.
Если в архиве нашёлся бэкап магазина, следом инструмент предложит восстановить и его, предварительно предупредив: бот, запущенный на другом сервере, нужно остановить, иначе два экземпляра начнут конфликтовать.
Бэкап Telegram-бота
Заголовок раздела «Бэкап Telegram-бота»Пункт 3 подключает к копии магазин. Поддерживаются remnawave-telegram-shop, приватный rwp-shop, remnawave-tg-shop, remnashop и remnawave-minishop:
Настройка бэкапа Telegram бота Бот: Бот Minishop Путь: /opt/remnawave-minishop Режим: ПАНЕЛЬ + БОТ 1.Настроить / Изменить параметры бота 2.Полностью выключить бэкап бота 3.Исключить бэкап панели (Режим Только Бот) 0.Вернуться в главное меню [?] Выберите пункт:
При настройке выбирается бот из списка, путь к его директории и пользователь базы. Режим Только Бот пригодится, когда панель и магазин живут на разных серверах: копия будет содержать один магазин. Имя файла в этом случае получит пометку bot.
Расписание
Заголовок раздела «Расписание»Пункт 4 ставит cron-задачу, которая сама делает и отправляет копию. Время задаётся по UTC+0 в виде списка часов:
Настройка автоматической отправки [INFO] Автоматическая отправка выключена. 1.Включить/перезаписать автоматическую отправку бэкапов 2.Выключить автоматическую отправку бэкапов 0.Вернуться в главное меню [?] Выберите пункт: 1 Выберите вариант автоматической отправки: 1)Ввести время (например: 08:00 12:00 18:00) 2)Ежечасно 3)Ежедневно Ваш выбор: 1 Введите желаемое время отправки по UTC+0 (например, 08:00 12:00): Время через пробел: 08:00 [INFO] Настройка cron-задачи для автоматической отправки... [INFO] SHELL=/bin/bash добавлен в crontab. [INFO] PATH переменная уже существует в crontab. [SUCCESS] CRON-задача для автоматической отправки успешно установлена. [SUCCESS] Автоматическая отправка установлена на: 08:00 по UTC+0.
Введённое время инструмент сам пересчитывает в часовой пояс сервера, поэтому копия приходит в ожидаемый час по вашему локальному времени. Вывод задачи пишется в /var/log/rw_backup_cron.log.
Способ отправки
Заголовок раздела «Способ отправки»Пункт 5 выбирает, куда уходят копии:
Настройка способа отправки бэкапов [INFO] Текущий способ: TELEGRAM 1.Установить способ отправки: Telegram 2.Установить способ отправки: Google Drive 3.S3 Storage (S3-совместимое хранилище) 0.Вернуться в главное меню [?] Выберите пункт:
- Telegram отправляет копию файлом в чат или топик группы. Лимит 50 МБ, крупные панели лучше отправлять в облако.
- Google Drive требует создать Google API-приложение и получить Client ID, Client Secret и Refresh Token: инструмент проведёт по шагам, покажет ссылку авторизации и запросит код из браузера. Копии складываются в выбранную папку диска, а уведомления по-прежнему приходят в Telegram.
- S3 Storage работает с любым S3-совместимым хранилищем. Понадобятся Endpoint URL, Region, имя бакета, Access Key и Secret Key, по желанию префикс (папка) и срок хранения в днях. AWS CLI устанавливается автоматически, подключение проверяется тестом в настройках.
Если настройка Google Drive или S3 не завершена, инструмент откатывает отправку на Telegram и сообщает об этом.
Настройки
Заголовок раздела «Настройки»Пункт 6 открывает конфигурацию инструмента:
Настройка конфигурации скрипта 1.Настройки Telegram 2.Настройки Google Drive 3.Настройки S3 Storage 4.Подключение к БД панели 5.Путь Remnawave 6.Политика хранения бэкапов 7.Язык / Language 8.Автообновление скрипта 0.Вернуться в главное меню [?] Выберите пункт:
Самое полезное внутри:
- Настройки Telegram хранят токен, ID чата и топик, а также прокси для Telegram API с тестом: три попытки с выводом времени ответа и причин ошибок.
- Подключение к БД панели переключает между контейнером
remnawave-dbи внешней PostgreSQL, хранит хост, порт, имя базы, SSL-режим и версию клиента, подключение проверяется кнопкой теста. - Политика хранения задаёт, сколько дней (или часов) живут локальные копии и копии в S3.
- Автообновление разрешает инструменту обновлять себя при каждом бэкапе, о чём приходит уведомление со ссылкой на список изменений.
Обновление и удаление
Заголовок раздела «Обновление и удаление»Пункт 7 сравнивает версию с GitHub и при наличии свежей предлагает обновление: перед заменой текущий файл сохраняется как резервная копия, а после установки скрипт перезапускается.
[INFO] Начинаю процесс проверки обновлений... [INFO] Получение информации о последней версии скрипта с GitHub... [INFO] Текущая версия: 4.0.0 [INFO] Доступная версия: 4.1.0 [ACTION] Доступно обновление до версии 4.1.0. Хотите обновить скрипт? Введите Y/N: y [INFO] Загрузка обновления... [INFO] Удаление старых резервных копий скрипта... [INFO] Создание резервной копии текущего скрипта... [SUCCESS] Скрипт успешно обновлен до версии 4.1.0. [INFO] Для применения изменений скрипт будет перезапущен...
Пункт 8 удаляет инструмент, но перед этим даёт сохранить локальные копии в отдельный каталог /opt/rw-backup-restore-saved:
[WARN] ВНИМАНИЕ! Будут удалены: - Скрипт - Каталог установки (бэкапы можно сохранить) - Символическая ссылка (если существует) - Задачи cron Вы уверены, что хотите продолжить? Введите Y/N: y Сохранить локальные бэкапы перед удалением? Y/N: y [SUCCESS] Бэкапы сохранены в /opt/rw-backup-restore-saved [INFO] Удаление cron-задач... [SUCCESS] Задачи cron для автоматического бэкапа удалены. [INFO] Удаление символической ссылки... [SUCCESS] Символическая ссылка удалена. [INFO] Удаление каталога установки и всех данных... [SUCCESS] /opt/rw-backup-restore (включая скрипт, конфигурацию, бэкапы) удален.
Сохранённые копии легко вернуть: скопируйте нужные .tar.gz в /opt/rw-backup-restore/backup после новой установки и выберите «Восстановление из бэкапа».
Переезд на новый сервер
Заголовок раздела «Переезд на новый сервер»Копия переносит панель целиком, поэтому для переезда достаточно восстановить её на новом сервере и поправить окружение:
- В Cloudflare смените IP поддомена панели (и поддомены остальных сервисов, если они переезжают вместе с ней).
- Восстановите директорию и базу из копии, как описано выше.
- Ссылка доступа и пароль панели останутся от старого сервера: их трогать не нужно.
- Если сервисный порт панели (по умолчанию 2222) на нодах открыт только для старого адреса, замените правило на каждой ноде:
ufw delete allow from OLD_IP to any port 2222 && ufw allow from NEW_IP to any port 2222При переезде связки «панель и нода на одном сервере» дополнительно поменяйте адрес корневой ноды в управлении нодами панели: она активируется сама. Сертификаты для домена восстанавливаются отдельно, например через Certwarden или пункт «Управление сертификатами домена» главного меню.
Файлы и пути
Заголовок раздела «Файлы и пути»/opt/rw-backup-restore: каталог установки, внутри скрипт,config.envс настройками и переводы./opt/rw-backup-restore/backup: склад готовых копий, отсюда же идёт восстановление./opt/rw-backup-restore-saved: сюда сохраняются копии при удалении инструмента.
