All Projects → andrewslotin → doppelganger

andrewslotin / doppelganger

Licence: MPL-2.0 license
A tool to mirror GitHub repositories.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
CSS
56736 projects

Projects that are alternatives of or similar to doppelganger

Flickrsync
A command line tool to synchronise, upload, download, pictures between the local file system and Flickr. Image hash signature of the picture is used to uniquely identify the image.
Stars: ✭ 14 (+0%)
Mutual labels:  backup, mirror
radio
Redundant Array of Distributed Independent Objectstores in short RADIO performs synchronous mirroring, erasure coding across multiple object stores
Stars: ✭ 25 (+78.57%)
Mutual labels:  backup, mirror
kstone
Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Stars: ✭ 592 (+4128.57%)
Mutual labels:  backup
ArchiverForGooglePhotos
A tool to maintain an archive/mirror of your Google Photos library for backup purposes.
Stars: ✭ 104 (+642.86%)
Mutual labels:  backup
pgcapture
A scalable Netflix DBLog implementation for PostgreSQL
Stars: ✭ 94 (+571.43%)
Mutual labels:  backup
cya
Easy to use snapshot and restore utility for any Linux (Unix) OS and filesystem powered by BASH
Stars: ✭ 73 (+421.43%)
Mutual labels:  backup
helm-backup
Helm plugin which performs backup/restore of releases in a namespace to/from a file
Stars: ✭ 70 (+400%)
Mutual labels:  backup
aws-tag-sched-ops
Retired, please see https://github.com/sqlxpert/lights-off-aws
Stars: ✭ 24 (+71.43%)
Mutual labels:  backup
zap
Maintain and replicate ZFS snapshots
Stars: ✭ 48 (+242.86%)
Mutual labels:  backup
ceiba-dl
NTU CEIBA 資料下載工具
Stars: ✭ 80 (+471.43%)
Mutual labels:  backup
adlibre-backup
High performance rsync backup utilising BTRFS / ZFS filesystem features
Stars: ✭ 35 (+150%)
Mutual labels:  backup
zpaqfranz
Deduplicating archiver with encryption and paranoid-level tests. Swiss army knife for the serious backup and disaster recovery manager. Ransomware neutralizer. Win/Linux/Unix
Stars: ✭ 86 (+514.29%)
Mutual labels:  backup
YinWangBak
A collection of articles written by YinWang
Stars: ✭ 87 (+521.43%)
Mutual labels:  backup
sublimetext-autobackups
Sublime Text 2/3 Auto backups plugin
Stars: ✭ 70 (+400%)
Mutual labels:  backup
docker-kubernetes-course
Demoing Kubernetes/AKS features
Stars: ✭ 42 (+200%)
Mutual labels:  backup
2049bbs.github.io
2049BBS 镜像站,每20分钟更新 https://2049bbs.github.io ,免翻墙 CDN https://cdn.staticaly.com/gh/2049bbs/2049bbs.github.io/gh-pages/index.html?env=dev ,Atom (类RSS) Feed 订阅地址 https://2049bbs.github.io/feed.xml ,节点订阅 https://2049bbs.github.io/feed/节点id.xml ,打包下载离线浏览 https://github.com/2049bbs/2049bbs.github.io/archive/gh-pages.zip
Stars: ✭ 39 (+178.57%)
Mutual labels:  mirror
instastories-backup
Backup your friends' Instagram Stories forever and get to keep them even after 24 hours.
Stars: ✭ 82 (+485.71%)
Mutual labels:  backup
macOSAppsOpenSource
No description or website provided.
Stars: ✭ 33 (+135.71%)
Mutual labels:  backup
jill.py
A cross-platform installer for the Julia programming language
Stars: ✭ 202 (+1342.86%)
Mutual labels:  mirror
todoist-export
Backup tool for Todoist
Stars: ✭ 135 (+864.29%)
Mutual labels:  backup

Doppelganger

A tool to create and maintain mirrors of GitHub repositories. Once the repostiory is mirrored a webhook is set up, so next time you push to GitHub master mirror will be updated. You may also trigger an update manually by clicking "Synchronize repository".

Build Status Linters Check

Why Would I Need It?

Well, if you ask this question then most likely you won't. But next time some Chinese website decides to host their assets on GitHub you know you've been warned.

Installation

Create new personal access token with following permissions:

  • public_repo
  • write:repo_hook

Make sure you have git installed.

Download the latest release, extract it and then run:

DOPPELGANGER_GITHUB_TOKEN=<YOUR_PERSONAL_ACCESS_TOKEN> ./doppelganger 

This will run a server listening on 0.0.0.0:8081 and all mirrored repositories will go to ./mirror.

Run ./doppelganger --help to learn how to override these defaults.

Build From Source

# Download and compile
go get github.com/andrewslotin/doppelganger
# Current working dir should have templates/ and assets/ folders
cd $GOPATH/src/github.com/andrewslotin/doppelganger
# Run it
DOPPELGANGER_GITHUB_TOKEN=<YOUR_PERSONAL_ACCESS_TOKEN> $GOPATH/bin/doppelganger

Docker

docker pull andrewslotin/doppelganger
docker run -d --name doppelganger -e DOPPELGANGER_GITHUB_TOKEN=<YOUR_PERSONAL_ACCESS_TOKEN> -v /home/git:/var/mirrors -p 8081:8081 andrewslotin/doppelganger

See Docker Hub Page for details.

Usage

Mirrors can be used just like any other git remote. You can even push your changes there directly, but note that they will be discarded next time someone pushes to GitHub master.

Following exaples assume you have git user set up on your mirror server with HOME set to Doppelganger mirror directory.

Set up a new local copy of github.com/example/project from mirror:

git clone git@<doppelganger-host>:example/project

Use mirror as a second remote in already existing repository:

git add remote mirror git@<doppelganger-host>:example/project

# Make your local master using mirror as an upstream:
git branch --unset-upstream master
git branch --set-upstream master mirror/master
git reset master mirror/master

# Switch back to GitHub
git branch --unset-upstream master
git branch --set-upstream master origin/master

Mirroring Private Repositories

To mirror private repositories your personal access token should have repo permission.

Doppelganger uses git+ssh protocol to clone private repositories, which requires an SSH key to be present in the system. While attempting to clone a private repository Doppelganger will try to use an existing key stored in ~/.ssh. If there is no key it will attempt generate a new 2048-bit RSA key pair and offer to add the public key to the list of your GitHub SSH keys.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].