# Бэкапы и restore

> Что бэкапить, как восстанавливать.

- Снятие/восстановление БД бота (дословно) [id=283274, 230953](https://t.me/c/2941121338/283274):
```bash
docker exec remnawave_bot_db pg_dump -Fc -U postgres remnawave_bot > backup_$(date +%Y%m%d_%H%M%S).dump
docker exec -i postgres pg_restore -U postgres -d remnawave_bot --clean --if-exists < backup_XXXXXXXX_XXXXXX.dump
```
Ошибка `role "postgres" does not exist` — брать правильного POSTGRES_USER из .env [id=284526](https://t.me/c/2941121338/284526).
- Авто-бэкапы бота (env) [id=6195, 186943](https://t.me/c/2941121338/6195):
```env
BACKUP_AUTO_ENABLED=true
BACKUP_INTERVAL_HOURS=24
BACKUP_TIME=03:00
BACKUP_MAX_KEEP=7
```
«Как сделать бекапы каждый час?» — в BACKUP_TIME дописать [id=127865](https://t.me/c/2941121338/127865); дубли бэкапов при интервале 1 час — норма, смотреть логи [id=532363..532391](https://t.me/c/2941121338/532363).
- API бэкапов бота: GET /download/{filename}, POST /restore/{filename}, POST /upload, DELETE /{filename}; защита от path traversal; пароль архива BACKUP_ARCHIVE_PASSWORD [id=143268](https://t.me/c/2941121338/143268).
- Без pg_dump бот пишет ORM-дамп JSON («pg_dump не найден в PATH») [id=191571](https://t.me/c/2941121338/191571); переработанный pipeline бэкапов PostgreSQL без pg_dump в v2.6.2 [id=59851](https://t.me/c/2941121338/59851).
- Инструменты: distillium/remnawave-backup-restore (панель, фулл /opt/remnawave) [id=78761, 660084](https://t.me/c/2941121338/78761); PEDZEO/remnawave-panel-backup-telegram (в ТГ) [id=235014, 726645](https://t.me/c/2941121338/235014); Chivas600/Bedolaga-Backup-Update (локально+резервный сервер) [id=388700](https://t.me/c/2941121338/388700); Beget S3 7₽/гиг + aws-cli + cron [id=179241](https://t.me/c/2941121338/179241); бэкап БД в Cloudflare R2 [id=1023171](https://t.me/c/2941121338/1023171); FTP раз в сутки с каждой ноды [id=564668](https://t.me/c/2941121338/564668).
- Восстановление: «очистить и восстановить» на новом боте, потом рестарт (миграции догрузятся) [id=102565](https://t.me/c/2941121338/102565); restore ремны из rw-backup не встаёт — снести redis [id=118118..118131](https://t.me/c/2941121338/118118); с postgres 18 backup-restore не восстанавливает сам [id=114571](https://t.me/c/2941121338/114571); бэкап от старой версии на новый бот — поднять старую версию бота поверх базы и пуллить до ласт [id=190842](https://t.me/c/2941121338/190842); путь обновления со старых: сначала до 3.15.1 (Alembic), потом ласт [id=298623](https://t.me/c/2941121338/298623).
- Правила: бэкапы 3-2-1; порт связи ноды с панелью открывать только для IP панели [id=119673](https://t.me/c/2941121338/119673); бэкап панели раз в 5 минут, логи xray каждую минуту [id=1029406](https://t.me/c/2941121338/1029406); логи на отдельном сервере с PGP-шифрованием (только владелец может расшифровать) [id=1028912](https://t.me/c/2941121338/1028912); ротация логов logrotate (`daily, rotate 7, compress, copytruncate`) [id=65040](https://t.me/c/2941121338/65040); bot.log большого размера тормозит бота [id=78598](https://t.me/c/2941121338/78598).
- «Хранение логов раз в 2 недели дампь» [id=625584](https://t.me/c/2941121338/625584); логи ~1.3 ТБ/IP за месяц [id=1028926](https://t.me/c/2941121338/1028926).

---
Источник: https://host.pink/baza/set/bekapy/
Оригинал: https://github.com/Rxflex/BedolagaBD/blob/main/docs/04-сеть-серверы/бэкапы.md
Лицензия: CC BY-SA 4.0
