gh-backup is a Spring Boot tool for backing up public GitHub repositories for specified users or organizations. It is available as a command-line tool, a web application, and a daemon that runs scheduled backups automatically (with Docker support).
- Ensure Java 17+ and Maven 3.6+ are installed.
- Clone the repository:
git clone https://github.com/dmccoystephenson/gh-backup.git cd gh-backup - Build the project:
mvn clean package
- The executable JAR will be created at
target/gh-backup-1.0.0.jar.
- User Guide – Getting started and common scenarios
- Commands Reference – Complete list of all CLI commands and options
- Configuration Guide – Detailed configuration options
You can find the support Discord server here.
Please fill out a bug report here.
Linux / macOS:
mvn clean testWindows:
mvn clean testIf you see BUILD SUCCESS, the tests have passed.
- Clone the repository and build:
mvn clean package
- Run in CLI mode:
java -jar target/gh-backup-1.0.0.jar octocat
- Run in web mode:
Then open
java -Dspring.profiles.active=web -jar target/gh-backup-1.0.0.jar
http://localhost:8080in your browser. - Run in daemon mode (automatic scheduled backups):
See Docker Deployment below for a containerized setup, and COMMANDS.md for all daemon options.
java -Dspring.profiles.active=daemon -Dbackup.scheduled.users=octocat,github -jar target/gh-backup-1.0.0.jar
The repository includes a Dockerfile and docker-compose.yml for running gh-backup as a background service that backs up configured users/organizations every 24 hours by default.
- Create a
.envfile from the example and configure it:cp .env.example .env
- Start the daemon:
docker-compose up -d
- View logs:
docker-compose logs -f
- Stop the daemon:
docker-compose down
See CONFIG.md for the full list of daemon configuration options.
| Name | Main Contributions |
|---|---|
| dmccoystephenson | Initial development and maintenance |
This project is licensed under the MIT License.
You are free to use, modify, and distribute this software under the terms of the MIT License.
See the LICENSE file for the full license text.
This project is in active development.
See CHANGELOG.md for a release-by-release summary of changes.