A handy script for backupping public repos from a github account :) (it's just my fear of loosing data :c ).
DO BACKUPS!! this is what as been told to me since i started doing system administration tasks and projects. So i wrote this script moved by the fear of losing github repositories (as if my hard drives were more reliable than microsoft ones), originally designed to run as a cron job.
Recently i have migrated my homelab services to a configuration managed with ansible and terraform and i found myself dealing with a lot of scripts like this one that were not designed to be ported from a machine to another and the idea comes to mind:
What if i put a cron script inside a docker container?
and this abomination was born :)
The script runs as a cron job, it fetches the github api to download the list of public repos and downloads them, then it curls the configured monitoring api.
sequenceDiagram
participant github
participant github_sync
participant monitoring_tool
github_sync ->> github: pull repository list
loop public repositories
github_sync ->> github: clone repository
end
github_sync ->> monitoring_tool: notify status
Installation is done trough docker container a sample can be as follows
services:
github_sync:
container_name: github_sync
image: carnivuth/github_sync:latest
environment:
HEALTHCHECK: "[HEALTHCHECKS.IO URL]"
NTFY: "[NTFY URL]"
ACCOUNT: "[GITHUB USERNAME TO BACKUP]"
volumes:
- "<data folder>:/var/lib/github_sync"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"