Files
gitea-backup/BACKUP_README.md
2026-01-06 22:12:07 +05:00

5.1 KiB
Raw Permalink Blame History

Бэкап и восстановление Gitea

Скрипты для бэкапа и восстановления Gitea в LXC контейнере на Proxmox.

Файлы

Скрипт Где запускать Описание
backup-gitea-lxc.sh Внутри LXC Бэкап на уровне приложения
backup-proxmox.sh На Proxmox хосте Оркестрация бэкапа + vzdump
setup-backup-cron.sh На Proxmox хосте Настройка автоматического бэкапа
restore-gitea.sh Внутри LXC Восстановление из бэкапа

backup-gitea-lxc.sh

Запускается внутри LXC контейнера. Создаёт:

  • database.sql — pg_dump базы PostgreSQL
  • gitea-dump.zip — репозитории, LFS, attachments, avatars
  • app.ini — конфигурация Gitea

Настройки:

Переменная По умолчанию Описание
BACKUP_BASE /var/backups/gitea Директория для бэкапов
DB_USER gitea Пользователь PostgreSQL
DB_NAME gitea Имя базы данных
KEEP_BACKUPS 7 Сколько бэкапов хранить
REMOTE_BACKUP scp путь для копирования

Пример:

sudo ./backup-gitea-lxc.sh

KEEP_BACKUPS=14 REMOTE_BACKUP=user@nas:/backups ./backup-gitea-lxc.sh

backup-proxmox.sh

Запускается на Proxmox хосте. Выполняет:

  1. Запуск backup-gitea-lxc.sh внутри контейнера
  2. Копирование архива из LXC на Proxmox хост
  3. Создание vzdump контейнера (если DO_VZDUMP=true)
  4. Ротация старых бэкапов

Настройки:

Переменная По умолчанию Описание
LXC_ID 300 ID контейнера Gitea
BACKUP_STORAGE /var/lib/vz/dump Где хранить бэкапы
DO_VZDUMP false Делать полный бэкап контейнера
VZDUMP_COMPRESS zstd Сжатие vzdump
KEEP_BACKUPS 7 Сколько gitea бэкапов хранить
KEEP_VZDUMP 3 Сколько vzdump хранить
REMOTE_BACKUP scp путь для копирования

Пример:

LXC_ID=300 ./backup-proxmox.sh

LXC_ID=300 DO_VZDUMP=true ./backup-proxmox.sh

setup-backup-cron.sh

Настраивает автоматический бэкап через cron.

Переменная По умолчанию Описание
LXC_ID 300 ID контейнера
BACKUP_TIME 12:00 Время ежедневного бэкапа

Расписание:

  • Ежедневно в указанное время: gitea dump + pg_dump
  • Воскресенье в 13:00: + полный vzdump контейнера

Пример:

LXC_ID=300 BACKUP_TIME=03:00 ./setup-backup-cron.sh

После установки:

gitea-backup                    # ручной запуск
DO_VZDUMP=true gitea-backup     # с полным бэкапом
tail -f /var/log/gitea-backup.log

restore-gitea.sh

Восстановление Gitea из бэкапа. Запускается внутри LXC после установки Gitea.

Поддерживает:

  • Архивы созданные через gitea dump
  • Нативные дампы PostgreSQL
  • Ручные бэкапы директорий

Настройки:

Переменная По умолчанию Описание
NEW_DOMAIN auto Новый домен/IP
NEW_PORT 3000 HTTP порт
DB_USER gitea Пользователь PostgreSQL
DB_NAME gitea Имя базы данных
DB_PASSWORD gitea Пароль PostgreSQL

Пример:

sudo ./restore-gitea.sh /tmp/gitea-backup-20240115-120000.tar.gz

NEW_DOMAIN=git.example.com DB_PASSWORD=secret ./restore-gitea.sh /tmp/backup.tar.gz

Выполняет:

  1. Распаковка архива
  2. Восстановление PostgreSQL
  3. Восстановление репозиториев и данных
  4. Обновление app.ini для нового сервера
  5. Регенерация SSH ключей и Git hooks
  6. Запуск Gitea

После восстановления проверьте:

  • Авторизация пользователей
  • Список репозиториев
  • Git clone/push операции

Структура бэкапа

gitea-backup-YYYYMMDD-HHMMSS.tar.gz
├── database.sql        # PostgreSQL дамп
├── gitea-dump.zip      # Данные Gitea
├── app.ini             # Конфигурация
├── gitea-version.txt   # Версия Gitea
└── dump.log            # Лог gitea dump