Files
AWatch-rus/docs/registry/GITEA_BACKUP_AND_RESTORE_RUNBOOK_RU.md
T
igor04091968 518a501dee
CI / Rust checks (push) Waiting to run
CI / Docs and registry checks (push) Waiting to run
CI / Smoke checks (push) Waiting to run
Coverage / Coverage baseline (push) Waiting to run
Dependency hygiene / Unused dependency check (push) Waiting to run
Dependency hygiene / Dependency duplicate report (push) Waiting to run
Dependency hygiene / Dependency security policy (push) Waiting to run
Dependency hygiene / Cargo udeps nightly advisory (push) Waiting to run
Operational maturity / Offline operational maturity (push) Waiting to run
Operational maturity / Live operational contract (push) Waiting to run
Security / Cargo audit (push) Waiting to run
Security / Cargo deny (push) Waiting to run
Security / Secret pattern check (push) Waiting to run
Security / Dependency review (push) Waiting to run
docs: switch Gitea runbooks to git.iri1968.ru
2026-08-04 12:03:28 +03:00

4.0 KiB

Runbook: backup и restore Gitea

Статус: registry-readiness runbook. Документ фиксирует целевую схему backup для self-hosted Gitea AWatch-rus. Backup нельзя считать production-ready до успешного тестового восстановления на отдельном сервере.

Параметры backup-контура

Параметр Значение
Backup path /var/backups/gitea
Backup script /usr/local/sbin/awatch-gitea-backup.sh
systemd service awatch-gitea-backup.service
systemd timer awatch-gitea-backup.timer
Schedule target daily 03:20 with RandomizedDelaySec=10m
Backup format Gitea dump ZIP
Checksum SHA256
Retention 14 days
Restore tested false until a separate test restore is completed

Целевой backup script использует gitea dump, создает ZIP backup и отдельный SHA256 checksum. Каталог /var/backups/gitea должен быть доступен только административным пользователям, обслуживающим Gitea backup.

Проверка timer

systemctl status awatch-gitea-backup.timer --no-pager
systemctl list-timers awatch-gitea-backup.timer --no-pager

Проверка результата backup

ls -lh /var/backups/gitea
sha256sum -c /var/backups/gitea/<backup>.zip.sha256

Имя backup-файла должно включать timestamp или иной однозначный идентификатор запуска. Retention target - 14 days.

Restore outline

Restore является ручной процедурой и требует тестового восстановления на отдельном сервере перед признанием backup production-ready.

Общий порядок:

  1. Подготовить отдельный сервер или isolated test instance.
  2. Установить ту же версию Gitea, из которой был создан dump.
  3. Остановить Gitea на целевом тестовом сервере.
  4. Проверить SHA256 checksum выбранного ZIP backup.
  5. Распаковать dump.
  6. Восстановить app.ini, data, repositories и database согласно официальной restore-процедуре Gitea для используемой версии.
  7. Исправить ownership и permissions:
chown -R git:git /var/lib/gitea
chown root:git /etc/gitea/app.ini
chmod 640 /etc/gitea/app.ini
  1. Запустить Gitea.
  2. Выполнить gitea doctor check.
  3. Если менялся путь установки или переносился сервер, выполнить gitea admin regenerate hooks.
  4. Выполнить post-restore checks.
  5. Зафиксировать timestamp, backup filename, checksum, Gitea version, restore duration и результат проверки.

Post-restore checks

systemctl status gitea --no-pager
curl -L https://git.iri1968.ru | head
gitea doctor check

Также открыть в браузере:

https://git.iri1968.ru/awatch-rus/AWatch-rus

Если менялся путь установки или сервер переносился, выполнить:

gitea admin regenerate hooks

Ограничения

  • Restore-runbook не заменяет фактический restore test.
  • restore_tested=false, пока не выполнено тестовое восстановление на отдельном сервере.
  • Backup не должен считаться production-ready, пока restore не проверен на отдельном сервере.
  • Offsite copy должна быть описана отдельно до финальной подачи в реестр.
  • Секреты, токены и приватные ключи не включаются в backup evidence manifest.