Reefox

Обновления, бэкапы и переезд

Как обновлять Reefox Panel, сохранять базу, переезжать на другой сервер и временно закрывать сервис на техработы.

Обновления

Когда выходит новая версия, ваш бот присылает сообщение «🆕 Доступна версия …» со списком изменений и кнопкой «🔄 Обновить до …». Такая же плашка с кнопкой «Обновить» появляется вверху админки.

Что происходит после нажатия:

  • обновление занимает 2–3 минуты. Бот и кабинет ненадолго перезапустятся, VPN у клиентов не прерывается;
  • по окончании бот напишет «✅ Обновлено до …»;
  • если новая версия не запустилась, вернётся прежняя, и бот сообщит «⚠️ Обновление до … не удалось». Отчёт об ошибке уйдёт разработчику автоматически.

Перед обновлением сделайте бэкап базы

Обновление само сохраняет только номер прежней версии. Если новая версия изменит структуру базы, а потом случится откат, база останется в новом виде. Сделайте бэкап по инструкции ниже, это одна команда.

Обновления доступны, пока лицензия активна. На тарифе «Исходник» — год с момента покупки.

Обновить вручную по SSH:

sudo TMAVPN_UPDATE_FORCE=true /opt/tmavpn/app/deploy/tmavpn-updater.sh

Бэкапы

Проще всего — встроенные резервные копии

В Настройки → Резервные копии панель сама делает зашифрованную копию базы по расписанию и отправляет её вам в Telegram и в S3-хранилище. Включите это в день запуска — подробно в справочнике Резервные копии. Ниже — ручной способ, если нужна ещё и копия файлов на своём компьютере.

Сохранять нужно три вещи:

  • базу данных — клиенты, подписки, платежи, настройки;
  • файл /opt/tmavpn/app/.env — пароли, ключ лицензии и домен. Без него сервис из бэкапа не поднять;
  • папку /opt/tmavpn/app/data — служебные файлы, в том числе привязка лицензии.

Ежедневный бэкап

Создайте скрипт:

cat > /root/tmavpn-backup.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
dir=/root/tmavpn-backups
mkdir -p "$dir"
stamp=$(date +%F-%H%M)
docker exec vpn-postgres pg_dump -U vpn -d vpn_db -Fc > "$dir/db-$stamp.dump"
tar -czf "$dir/files-$stamp.tar.gz" -C /opt/tmavpn/app .env data
find "$dir" -type f -mtime +14 -delete
EOF
chmod 700 /root/tmavpn-backup.sh

Проверьте, что он работает. В папке должны появиться два файла:

/root/tmavpn-backup.sh && ls -lh /root/tmavpn-backups

Включите запуск каждую ночь в 3:30 по времени сервера:

(crontab -l 2>/dev/null; echo "30 3 * * * /root/tmavpn-backup.sh") | crontab -

Скрипт хранит бэкапы 14 дней. Копируйте их с сервера хотя бы раз в неделю: если пропадёт сервер, вместе с ним пропадут и бэкапы на нём. С вашего компьютера это делается так:

scp -r root@203.0.113.10:/root/tmavpn-backups ./tmavpn-backups

Настройки → База данных: состояние, перенос на другой PostgreSQL и выгрузка в CSV

Выгрузка в CSV — не бэкап

В Настройки → База данных можно скачать пользователей, платежи и ключи в CSV. Это удобно для отчётов, но восстановить из CSV сервис нельзя. Храните такие файлы бережно: в выгрузке ключей есть ссылки подписок клиентов.

Если база внешняя

Если при установке вы выбрали свой PostgreSQL (вариант 2), делайте бэкап средствами своего сервера баз данных. Файл .env и папку data всё равно сохраняйте скриптом выше, убрав из него строку с pg_dump.

Восстановление

Приложение на время восстановления нужно остановить:

docker stop vpn-app
docker exec -i vpn-postgres pg_restore -U vpn -d vpn_db --clean --if-exists --no-owner < /root/tmavpn-backups/db-2026-09-27-0330.dump
docker start vpn-app

Подставьте имя своего файла. Через минуту проверьте https://ваш-домен/health и админку.

Переезд на новый сервер

Используйте встроенный перенос: Настройки → Перенос сервера. Он переносит Reefox Panel, базу, настройки, загрузки, сертификаты и привязку лицензии. Старый сервер продолжает работать, пока вы сами не подтвердите переключение.

Перенос сервера: что будет перенесено

Возьмите чистый VPS на Ubuntu или Debian с той же архитектурой процессора и доступом root по SSH.

Если панели 3x-ui пускают только разрешённые IP, заранее добавьте туда IP нового сервера.

Введите адрес нового сервера и SSH-доступ, нажмите «Проверить сервер». Система проверит ОС, место на дисках и Docker.

Подтвердите отпечаток SSH-ключа нового сервера. Начнётся подготовка и пробное восстановление базы, клиенты этого не заметят.

Нажмите «Переключить на новый сервер».

Смените A-запись домена на IP нового сервера и проверьте админку и Mini App.

Старый сервер не удаляйте хотя бы сутки.

VPN-серверы и панели 3x-ui не переносятся и не меняются: связи с ними сохраняются.

Логи

  • Настройки → Логи: «Действия» — кто из администраторов что менял, хранятся 90 дней. «Системные» — предупреждения и ошибки приложения за 2 дня.
  • На сервере: docker logs vpn-app --tail 200.

Режим техработ

Настройки → Тех. работы временно закрывает сервис для клиентов, например на время переезда.

Режим техработ

Пока режим включён:

  • бот на любое сообщение отвечает вашим текстом о техработах;
  • Mini App и кабинет показывают страницу обслуживания, новые оплаты не создаются;
  • VPN-приложения клиентов не могут обновить подписку. Уже подключённый VPN продолжает работать;
  • новые люди, которые нажали /start, не регистрируются. Если они пришли по реферальной или рекламной ссылке, метка потеряется;
  • админка и уведомления платёжных провайдеров работают как обычно.

Держите режим включённым как можно меньше и не забудьте выключить.

Дальше — если что-то не работает.