Home
Softono
gickup

gickup

Open source Apache-2.0 Go
1.4K
Stars
77
Forks
44
Issues
8
Watchers
2 weeks
Last Commit

About gickup

Gickup is a versatile command-line tool designed to simplify the backup and mirroring of Git repositories across various hosting platforms. It enables users to clone or mirror repositories from popular sources such as GitHub, GitLab, Bitbucket, Gitea, Gogs, Codeberg, Forgejo, OneDev, Sourcehut, and any generic Git host. Users can transfer these repositories to multiple destinations including the same supported platforms, local storage, or Amazon S3 compatible object stores. The tool operates via a simple YAML configuration file, allowing for automated and systematic backup workflows without manual intervention. It is available as a pre-compiled binary, a Docker container, and through package managers like AUR for Arch Linux, Homebrew for macOS, and COPR for Fedora. Gickup is ideal for developers and system administrators seeking reliable redundancy for their codebases, ensuring data preservation across different environments. The software is written in Go, making it lightweight and cross-platform, and support

Platforms

Web Self-hosted

Languages

Go

logo
GICKUP

Backup your Git repositories with ease.

WebsiteGitHubDocs

Build and Publish

What is GICKUP?

Gickup is a tool that allows you to clone/mirror repositories from one host to another. This is useful if you want to have a backup of your repositories on another host or on a local server.

Supported Source and Destinations

You can clone/mirror repositories from:

  • Github
  • Gitlab
  • Codeberg (Forgejo)
  • Gitea
  • Gogs
  • Bitbucket
  • OneDev
  • Sourcehut
  • Any

You can clone/mirror repositories to:

  • Github
  • Gitlab
  • Codeberg (Forgejo)
  • Gitea
  • Gogs
  • OneDev
  • Sourcehut
  • Local
  • S3

If your hoster is not listed, feel free to open an issue and I will add it.

How to make a configuration file

Here is an example

How to run the binary version

./gickup path-to-conf.yml

How to run the Docker image

mkdir gickup
wget https://raw.githubusercontent.com/cooperspencer/gickup/main/docker-compose.yml
nano conf.yml # Make your config here
docker-compose up

Compile the binary version

go build .

Compile the Docker Image

git clone https://github.com/cooperspencer/gickup.git
cd gickup
nano docker-compose.yml # Uncomment the Build
nano conf.yml # Make your config here
docker-compose build
docker-compose up

Questions?

If anything is unclear or you have a great idea for the project, feel free to open a discussion about it. https://github.com/cooperspencer/gickup/discussions

Distribution Packages

Distribution Package Maintainer
Arch gickup me
Homebrew gickup
Fedora gickup FrostyX

Issues

The mirroring to Gitlab doesn't work, or at least I can't test it properly because I have no access to a Gitlab EE instance.

Future Ideas

  • Additional VCS
  • Add minio as a destination