Всем привет! Тут я продолжу писать туториалы, которые помогут вам отвязаться от сервисов и сделать ваши данные именно вашим. Да, да, всё что не у вас дома на жестком диске вам не принадлежит. В этом туториале настроим сервис https://github.com/jonhadfield/soba, который будет автоматически делать бэкапы с ваших репозиториев в гитхабе. Неприятно однажды обнаружить, то ваш гитхаб аккаунт был заблокирован или по чьей-либо ошибке был удален ваш код (привет гитлаб).
Предыдущие публикации
Цифровая свобода. Часть 1. Менеджер паролей
Платформа
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-сервисами
iAndrey
Я может чего-то не понимаю, но фраза "туториалы, которые помогут вам отвязаться от сервисов и сделать ваши данные именно вашим" как-то не вяжется с "docker pull $imgname"
Вендорлок на гитхаб меняется на вендорлок на докерхаб.
thedrnic
Однако ничего не мешает сделать так:
#Загрузка образа из сети
docker pull docker/compose:1.29.2
#Сохранение образа локально
docker save -o docker_compose_1.29.2.tar docker/compose:1.29.2
#Загрузка образа с локального диска
docker load < docker_compose_1.29.2.tar
Дальше останется только выкачивать npm, pip... и т.д. репозитории, пакеты для OC, саму OC и тогда данные точно никуда не пропадут.. пока жив жёсткий диск)
iAndrey
А можно ограничиться локальным зеркалом репозитория дистрибутива и установки необходимых пакетов напрямую, без лишних прослоек. Тогда докер вообще выбросить можно будет. И тогда точно можно будет инфраструктуру с нуля развернуть.