No description
Find a file
2026-06-16 08:51:13 +03:00
.env.example Initial commit 2026-02-12 14:02:39 +03:00
.gitignore Initial commit 2026-02-12 14:02:39 +03:00
Readme.md Initial commit 2026-02-12 14:02:39 +03:00
script.bash Добавил Forgejo 2026-06-16 08:51:13 +03:00

Git Mirror Backup Tool

Скрипт для автоматического зеркалирования и резервного копирования всех репозиториев из GitHub и GitLab.

Основные возможности

  • Автоматический сбор: Получает списки всех доступных репозиториев через API (GitHub CLI и GitLab API).
  • Зеркалирование: Использует режим --mirror, сохраняя все ветки, теги и историю коммитов.
  • Структурирование: Организует репозитории по папкам: платформа/владелец/репозиторий.git.
  • Безопасность: Все архивы шифруются алгоритмом AES256 с помощью GPG.
  • Облачное хранение: Автоматическая синхронизация зашифрованных архивов с удаленным FTP-сервером.
  • Статистика: Ведение лога каждой операции в файл backup.log.

Требования

Для работы скрипта должны быть установлены:

  • gh (GitHub CLI)
  • jq (обработка JSON)
  • lftp (синхронизация с FTP)
  • git
  • gpg (шифрование)

Настройка

  1. Скопируйте .env.example -> .env в корне проекта и установите значение переменных.

  2. Настройте права доступа к скрипту:

    chmod +x script.bash
    

Использование

Запуск бэкапа:

./script.bash

или

zsh script.bash

Восстановление данных

1. Расшифровка архива

Для расшифровки и распаковки группы репозиториев используйте команду:

gpg --batch --passphrase аш_пароль" -d backup.tar.gz.gpg | tar -xz

2. Восстановление исходного кода

Так как бэкап хранится в формате --mirror (чистая база Git), для получения файлов проекта выполните обычный клон из локальной папки:

git clone /путь/к/бэкапу/repo.git /путь/к/восстановленному/проекту

После этого в папке проекта появятся все файлы. Все ветки также будут доступны через git checkout <имя_ветки>.

Логирование

Результаты работы записываются в ./backup.log