Всем привет! Тут я продолжу писать туториалы, которые помогут вам отвязаться от сервисов и сделать ваши данные именно вашим. Да, да, всё что не у вас дома на жестком диске вам не принадлежит. В этом туториале настроим сервис https://github.com/jonhadfield/soba, который будет автоматически делать бэкапы с ваших репозиториев в гитхабе. Неприятно однажды обнаружить, то ваш гитхаб аккаунт был заблокирован или по чьей-либо ошибке был удален ваш код (привет гитлаб).

Предыдущие публикации

Цифровая свобода. Часть 1. Менеджер паролей

https://unsplash.com/photos/vc3iVL_znJ8

Платформа

  • PC\Raspberry PI

  • Linux

  • Docker

  • Доступ в интернет

Настройка окружения

Здесь и далее приведены примеры на ubuntu 20

Обновляем пакеты

sudo apt update
sudo apt upgrade

Настраиваем Firewall

sudo ufw allow https
sudo ufw allow http
sudo ufw allow ssh
yes | sudo ufw enable

Установка docker

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
sudo apt install docker-ce

Токен доступа

Для доступа к вашим репозиториям нужно выдать приложению ваш токен https://github.com/settings/tokens/new.

Выберите доступы. К приватным репозиториям стоит давать доступ исключительно осознанно. Код soba находится в открытом доступе, можете провести свой аудит и решить давать доступы к приватному репо или нет.

Запуск сервиса

docker run -t -d \
             -v <your backup folder>:/backup \
             -e GIT_BACKUP_DIR='/backup' \
             -e GITHUB_TOKEN='token' \
             -e GIT_BACKUP_INTERVAL='24' \
             -e GITHUB_BACKUPS=1 \
             --restart always \
             ghcr.io/jonhadfield/soba

Немного про параметры запуска

GITHUB_TOKEN - токен доступа из гитхаба

GIT_BACKUP_INTERVAL - как часто запускать бэкап, со значением 24 запуск будет происходить один раз в сутки.

GITHUB_BACKUPS количество хранимых бандлов, достаточно будет одного для экономии места. Если сделать больше, то это обезопасит в случае, когда вдруг кто-то сделает force push в ваш репо.

--restart always с этим параметром контейнер будет запускаться после перезагрузки вашей машины.

Что бы остановить контейнер нужно сначала найти контейнер

docker ps -a

выключить restart always и остановить контейнер

docker update --restart=no e5830eb61af5
docker stop e5830eb61af5

Востановление

Сервис сохраняет bundle репозитория, востановить его можно просто с помощью git.

git clone stimulus.20220323221931.bundle

Итоги

  • сервис для бэкапа кода

  • всё происходит в автоматическом режиме, не нужно никаких ручных запусков

  • ваш код хранится у вас

  • не страшны блокировки, проблемы и прочие несчастья с GIT-сервисами