Бэкап: убрать старые backup.sh/restore.sh, документация

deploy/backup/README.md — подробная пошаговая инструкция по всему, что делается вручную:
пароль шифрования, SSH-ключ, VPS (пользователь fsbackup только для SFTP, проверки sshd),
сборка образов, включение на Pi (с разбором каждой переменной и контрольными проверками),
доступ с ПК и выгрузка, учебное восстановление на тест-клоне, восстановление прода и из
архива, катастрофа «Pi умер», повседневные действия, таблица неполадок, справочник, чек-лист.
Команды разделов VPS и Pi прогнаны на локальном стенде.
deploy/pi, deploy/vps §8, deploy/README — ссылки на новую схему. Удалены scripts/backup.sh и
scripts/restore.sh (restore.sh ещё и оставлял БД root-овой: docker cp пишет файлы с uid 0);
их архивы fs_*.tar.gz восстанавливаются через fs-backup import. #64

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013jBxs9nBCk5nBdTLzcGz91
This commit is contained in:
2026-09-14 01:29:08 +03:00
co-authored by Claude Opus 5
parent 19f6068ddc
commit 8b400b76c6
6 changed files with 1011 additions and 21 deletions
+12 -13
View File
@@ -110,16 +110,15 @@ systemctl reload caddy
Логи Caddy: `journalctl -u caddy -f`.
## 8. Приём бэкапов с Pi (оффсайт-копии)
Pi ежедневно шлёт полный архив (`scripts/backup.sh`) на VPS отдельным пользователем `backup`
(не путать с `tunnel`). Каталог — **вне** веб-корней Caddy, права 700.
```bash
useradd -m -s /bin/bash backup
install -d -m 700 -o backup -g backup /home/backup/.ssh
install -m 600 -o backup -g backup /dev/null /home/backup/.ssh/authorized_keys
install -d -m 700 -o backup -g backup /srv/fs-backups
# Публичный ключ бэкапа с Pi (deploy/backup/id_backup.pub) добавь в authorized_keys:
# echo '<содержимое id_backup.pub>' >> /home/backup/.ssh/authorized_keys
```
> Ротацию на VPS делает сам скрипт с Pi (`BACKUP_KEEP_REMOTE`, по умолч. 30). Каталог
> `/srv/fs-backups` не отдаётся Caddy (нет `root`/`file_server` на него) → бэкапы не публичны.
> Проверка приёма: после `scripts/backup.sh` на Pi → `ls -1 /srv/fs-backups/` на VPS.
Контейнер `backup` на Pi каждую ночь отправляет зашифрованный снимок (restic) на VPS по SFTP.
Для этого на VPS нужен отдельный пользователь `fsbackup` **только для SFTP**: без shell,
без туннелей, без пароля. Репозиторий лежит в `/srv/fs-backups/restic`, вне веб-корней
Caddy, так что бэкапы не публичны.
> Имя не `backup`: в Debian/Ubuntu системный пользователь `backup` уже существует.
Пошаговая настройка: создание пользователя, ключ, `sshd_config.d/60-fs-backup.conf`,
проверки — [`deploy/backup/README.md`, шаг 3](../backup/README.md#шаг-3-vps-пользователь-только-для-sftp).
Проверка приёма после первого бэкапа: `ls -la /srv/fs-backups/restic` (там `config`, `data`,
`index`, `keys`, `snapshots`). Старые снимки удаляет сам контейнер с Pi по политике хранения.