Бэкап: сервис backup в compose прода и тест-клона, .env.example
docker-compose.yml: сервис backup (образ из реестра, явный environment только с BACKUP_*, тома данных + backup-data), предупреждение про down -v. docker-compose.test.yml: тот же образ локальной сборкой, только локальный репозиторий, без расписания, BACKUP_VPS_HOST принудительно пуст. .env.example: новый блок BACKUP_* (пароль, расписание, хранение, сжатие, SFTP-пользователь fsbackup — системный backup в Debian/Ubuntu уже занят, ключ base64, адрес Pi для скриптов ПК); удалены BACKUP_VPS_KEY и BACKUP_KEEP_LOCAL/REMOTE. build-push: сообщения про третий образ (bake подхватывает сервис сам). #64 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jBxs9nBCk5nBdTLzcGz91
This commit is contained in:
+33
-9
@@ -90,16 +90,40 @@ IMAGE_TAG=latest
|
||||
#APP_MEM_LIMIT=512m
|
||||
#APP_CPUS=1.5
|
||||
|
||||
# ─── БЭКАП (оффсайт-копия на VPS; читает scripts/backup.sh на хосте Pi) ───────
|
||||
# Полный бэкап (БД + uploads + achievements) кладётся локально в backups/, и — если задан
|
||||
# BACKUP_VPS_HOST — копируется на VPS (Pi → VPS push, т.к. Pi за CGNAT). Пусто = только локально.
|
||||
# Ключ бэкапа — deploy/backup/id_backup (в git НЕ идёт); его pubkey → authorized_keys у backup@VPS.
|
||||
# ─── БЭКАПЫ (контейнер backup: restic; подробно — deploy/backup/README.md) ────
|
||||
# Снимки БД + uploads + achievements по расписанию: локально на Pi (том backup-data) и —
|
||||
# если задан BACKUP_VPS_HOST — на VPS по SFTP. Шифрование, дедупликация, сжатие — restic.
|
||||
#
|
||||
# Пароль шифрования репозиториев. ПОТЕРЯЕТЕ ПАРОЛЬ — НИ ОДИН БЭКАП НЕ ПРОЧИТАТЬ.
|
||||
# Сохраните его в менеджер паролей. Пусто = бэкапы отключены. Без символа '$'.
|
||||
# Сгенерировать: python -c "import secrets;print(secrets.token_urlsafe(32))"
|
||||
BACKUP_PASSWORD=
|
||||
# Когда делать бэкап и проверку данных (cron: минута час день месяц день_недели; TZ ниже).
|
||||
BACKUP_SCHEDULE="0 4 * * *"
|
||||
BACKUP_VERIFY_SCHEDULE="30 5 * * 0"
|
||||
BACKUP_TZ=Europe/Moscow
|
||||
# Сколько хранить: последний снимок каждого дня / недели / месяца.
|
||||
# Именованные снимки (fs-backup run --tag …) и страховочные pre-restore не удаляются.
|
||||
BACKUP_KEEP_DAILY=14
|
||||
BACKUP_KEEP_WEEKLY=8
|
||||
BACKUP_KEEP_MONTHLY=12
|
||||
# Сжатие restic: auto (быстрее) | max (плотнее) | off.
|
||||
BACKUP_COMPRESSION=max
|
||||
# Контейнер помечается unhealthy, если последний успешный бэкап старше стольких часов.
|
||||
BACKUP_MAX_AGE_HOURS=30
|
||||
# Оффсайт-копия на VPS (SFTP). Пусто = только локальная копия на Pi.
|
||||
BACKUP_VPS_HOST=
|
||||
BACKUP_VPS_USER=backup
|
||||
BACKUP_VPS_DIR=/srv/fs-backups
|
||||
BACKUP_VPS_KEY=deploy/backup/id_backup
|
||||
BACKUP_KEEP_LOCAL=14
|
||||
BACKUP_KEEP_REMOTE=30
|
||||
BACKUP_VPS_USER=fsbackup
|
||||
BACKUP_VPS_PORT=22
|
||||
BACKUP_VPS_DIR=/srv/fs-backups/restic
|
||||
# Приватный SSH-ключ для VPS в base64 одной строкой (как TUNNEL_KEY_B64). На ПК ключ лежит
|
||||
# в deploy/backup/id_backup (в git НЕ идёт), pubkey — в authorized_keys у fsbackup@VPS.
|
||||
# PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes((Resolve-Path "deploy\backup\id_backup")))
|
||||
BACKUP_SSH_KEY_B64=
|
||||
# Только для ПК (scripts/fs-backup.ps1 / .sh): как зайти на Pi по SSH и где там лежит
|
||||
# docker-compose.yml прода.
|
||||
BACKUP_PI_SSH=pi@192.168.1.10
|
||||
BACKUP_PI_DIR=~/forbidden-stars
|
||||
|
||||
# ─── ПРОЧЕЕ ───────────────────────────────────────────────────────────────────
|
||||
# Часовой пояс приложения (фикс. смещение в часах; МСК = 3)
|
||||
|
||||
Reference in New Issue
Block a user