Github Backup

| 277 words | tags: #github #backup #docker

Github на днях писал о том, что разработчиков из России пока не планируют блокировать. Но что будет дальше, никому не известно.

Задумался о создании бекапа своих репозиториев. Нашел решение от Umputun: github-backup-docker , которое базируется на питон-версии . Немного пошаманил, обновив версию питона, добавил ряд переменных для более удобного управления работой программы, все разместил в своем форке: juev/github-backup-docker . Создал PR с изменениями.

Одним из существенных изменений, на мой взгляд, по сравнению с версией умпутуна, является отказ от использования отдельных директорий под каждый бекап. Просто потому, что git сам по себе уже предоставляет историю изменений и создав один раз копию, нужно лишь обновлять ее, подтягивая новые изменения.

Достаточно склонировать репозиторий, создать копию файла .env-example под именем .env и прописать значения для переменных:

cd works
git clone https://github.com/juev/github-backup-docker.git
cd github-backup-docker
cp .env-example .env

Переходим на страницу github.com/settings/tokens , генерируем новый токен, разрешающий работать с репозиториями. Указываем в .env файле значения для переменных:

  • GITHUB_USER=umputun – соответственно имя пользователя
  • GITHUB_ACCESS_TOKEN=token – созданный токен для авторизации
  • TIME_ZONE=America/Chicago – таймзона
  • SLEEP="1d" – на сколько засыпать перед следующим запуском (по умолчанию один день)
  • ARGS="--all --private" – параметры запуска, передаваемые в питон-программу, за подробностями обращайтесь по ссылке .

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

docker-compose build
docker-compose up -d

Проверить корректность работы можно проверив логи:

docker-compose logs -f

Я запустил контейнер на своем Raspbbery PI, с обновлением репозиториев раз в час. И теперь у меня дома есть копия всех моих изменений. И чтобы не происходило с Github, у меня под рукой теперь есть резервная копия всех репозиториев и файлов.

Будем надеяться, что и дальше ничего не измениться и Github будет доступен, но побеспокоиться о сохранности своих данных стоит уже сейчас.