morten-olsen / github-backup

Docker image for easily create a backup of all Github repositories associated to your user

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simple GitHub Backup

A simple GitHub backup image, which will fetch a mirror backup of all repos the user is associated with from GitHub

Usage

docker run -it --rm \
  -e GITHUB_TOKEN="$GH_TOKEN" \
  -v "$PWD/backup:/backup" \
  --cap-drop=all \
  --user "$UID:$GID" \
  ghcr.io/morten-olsen/github-backup run

Note: --user is not required, but recommended instead of running as root. Remember to give the user write access to the backup directory

You can also limit which repositories to back up using the environment variables INCLUDE and EXCLUDE, which supports a list or repos separated by , and with * as wildcard

-e INCLUDE="morten-olsen/*,morten-olsen-env/dotfiles" -e EXCLUDE="morten-olsen/something,*/test"

Backup structure

|-{user1}
|  |-{repo1}
|  |  |-info.json
|  |  |-git
|  |  |  |-...
|  |-{repo2}
|  |  |-info.json
|  |  |-git
|  |  |  |-...
|-{user2}
|  |-{repo1}
|  |  |-info.json
|  |  |-git
|  |  |  |-...

Scheduled

If the container is started without a command it will run in scheduled mode. It will run every Sunday at 3 am. This can be overridden using -e SCHEDULE="0 0 4 * * *" (Runs at 4 am every day) using the cron time format

About

Docker image for easily create a backup of all Github repositories associated to your user


Languages

Language:TypeScript 90.2%Language:Dockerfile 8.9%Language:Shell 1.0%