GitReposBackup automatically keeps your repositories synced across Git providers in real time — so your code never depends on a single platform.
The Problem
Relying on a single Git provider means a single point of failure. Outages, policy changes, account suspensions — any of them can cut off your team from its codebase.
When GitHub goes down, your entire team stops. No access, no deploys, no review workflows — for as long as it lasts.
Migrating to a different provider is painful when all your repos live in one place and nothing is ready to move.
Running scripts by hand or setting cron jobs is error-prone. Miss a few days and your backup is already stale.
Nightly or hourly syncs leave windows where your backup is hours behind your main branch — right when it matters most.
How It Works
Get from zero to fully mirrored repositories in minutes — no command line, no complicated config.
Authenticate with GitHub, GitLab, Bitbucket — or all three. Add as many accounts as you need, including multiple accounts of the same provider.
Choose a source repository and a destination. Mix providers freely — GitHub source to GitLab destination, for example. GitReposBackup handles the rest.
Work exactly as you do today. Every push to your source triggers a real-time mirror sync. Branches, tags, and full commit history are all preserved.
Watch sync status, last sync time, and job history from a clean dashboard. Get alerted if a sync fails so you can act before it becomes a problem.
Features
Built for reliability — from individual repos to dozens of bindings across multiple teams and providers.
Mirror from any supported provider to any other. GitHub to GitLab, Bitbucket to GitHub — any direction works.
Connect multiple accounts per provider — personal, organizational, or both. Manage all your Git identities from one place.
Uses git push --mirror under the hood, preserving all refs, branches, tags, and complete commit history.
Webhooks trigger a backup job the moment a push lands. Your mirror is always within seconds of the source — not hours.
Trigger a sync on demand with one click. Useful after connecting a new account or before a critical release.
If the destination repository doesn't exist yet, GitReposBackup creates it automatically so setup never gets blocked.
Enable, disable, or delete individual bindings independently. Full control over which repos are mirrored and where.
View a log of every sync job — when it ran, how long it took, and whether it succeeded. Diagnose issues at a glance.
Security
Your tokens and credentials never leave your infrastructure.
GitReposBackup is fully self-hosted — you run it on your own server, in your own network. Your OAuth tokens are encrypted at rest and never transmitted to third parties. Authentication is OAuth-only, with JWTs stored as HTTP-only cookies.
The worker only performs read operations on source repositories and push operations on destinations you explicitly configure. There are no outbound connections except to the Git providers you've authorized.
OAuth access tokens are encrypted at rest in the database, never stored in plaintext.
JWTs are stored as HTTP-only cookies, inaccessible to JavaScript and protected against XSS.
No cloud component. Your data, tokens, and repositories stay within your own infrastructure.
No passwords. Users log in via Git provider OAuth, limiting the attack surface significantly.
Use Cases
Whether you're a solo developer or running dozens of repos across an organization, GitReposBackup fits your workflow.
Keep personal projects backed up across providers. Free for private use — no subscription needed.
Mirror your shared repositories to a secondary provider so the team can keep working even when the primary goes down.
Enforce repository redundancy policies across all engineering teams. Add a second provider as a hot standby for business continuity.
Publish mirrors of your open source projects on multiple platforms so contributors can find and fork from anywhere.
Set up automated repository mirroring in minutes. Free for private users.
Sign InFAQ
No. GitReposBackup performs a git clone/push operation at sync time but does not persistently store your repository data on the server. The clone is used only to execute the mirror push and is removed afterward.
No. GitReposBackup is fully self-hosted. You run it on your own server or infrastructure. There is no cloud service, no account to create with us, and your code and tokens never leave your environment.
GitHub, GitLab, and Bitbucket are supported out of the box. You can use any combination of these as your source or destination — for example, mirroring from GitHub to GitLab, or from Bitbucket to GitHub.
Yes. You can connect as many accounts as you need, including multiple accounts from the same provider — for example, a personal GitHub account and a GitHub organization account simultaneously.
Yes. GitReposBackup uses git push --mirror, which copies all branches, all tags, and the complete commit history to the destination — not just the default branch.
Yes. You create a "binding" for each source–destination pair you want to keep in sync. Only the repositories you explicitly configure will be mirrored — there is no automatic bulk sync of all repositories in an account.