Self-hosted Git repository backup

Mirror every push across GitHub,
GitLab, and Bitbucket

GitReposBackup automatically keeps your repositories synced across Git providers in real time — so your code never depends on a single platform.

GitHub, GitLab & Bitbucket Self-hosted No CLI required Free for private use

The Problem

Your code is too important to live on one platform

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.

Platform outages

When GitHub goes down, your entire team stops. No access, no deploys, no review workflows — for as long as it lasts.

Vendor lock-in

Migrating to a different provider is painful when all your repos live in one place and nothing is ready to move.

Manual backup fatigue

Running scripts by hand or setting cron jobs is error-prone. Miss a few days and your backup is already stale.

Scheduled sync gaps

Nightly or hourly syncs leave windows where your backup is hours behind your main branch — right when it matters most.

How It Works

Four steps to automated repository backup

Get from zero to fully mirrored repositories in minutes — no command line, no complicated config.

Connect accounts

Authenticate with GitHub, GitLab, Bitbucket — or all three. Add as many accounts as you need, including multiple accounts of the same provider.

Create a binding

Choose a source repository and a destination. Mix providers freely — GitHub source to GitLab destination, for example. GitReposBackup handles the rest.

Push code as usual

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.

Monitor sync health

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

Everything you need for repository continuity

Built for reliability — from individual repos to dozens of bindings across multiple teams and providers.

Cross-provider mirroring

Mirror from any supported provider to any other. GitHub to GitLab, Bitbucket to GitHub — any direction works.

Multiple accounts

Connect multiple accounts per provider — personal, organizational, or both. Manage all your Git identities from one place.

Full mirror backup

Uses git push --mirror under the hood, preserving all refs, branches, tags, and complete commit history.

Real-time sync

Webhooks trigger a backup job the moment a push lands. Your mirror is always within seconds of the source — not hours.

Manual sync

Trigger a sync on demand with one click. Useful after connecting a new account or before a critical release.

Auto-create repos

If the destination repository doesn't exist yet, GitReposBackup creates it automatically so setup never gets blocked.

Binding-level control

Enable, disable, or delete individual bindings independently. Full control over which repos are mirrored and where.

Activity history

View a log of every sync job — when it ran, how long it took, and whether it succeeded. Diagnose issues at a glance.

Security

Built for security-conscious teams

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.

Encrypted tokens

OAuth access tokens are encrypted at rest in the database, never stored in plaintext.

HTTP-only cookies

JWTs are stored as HTTP-only cookies, inaccessible to JavaScript and protected against XSS.

Self-hosted only

No cloud component. Your data, tokens, and repositories stay within your own infrastructure.

OAuth-only auth

No passwords. Users log in via Git provider OAuth, limiting the attack surface significantly.

Use Cases

Built for developers, teams, and organizations

Whether you're a solo developer or running dozens of repos across an organization, GitReposBackup fits your workflow.

Individual developers

Keep personal projects backed up across providers. Free for private use — no subscription needed.

Small teams

Mirror your shared repositories to a secondary provider so the team can keep working even when the primary goes down.

Companies

Enforce repository redundancy policies across all engineering teams. Add a second provider as a hot standby for business continuity.

Open source maintainers

Publish mirrors of your open source projects on multiple platforms so contributors can find and fork from anywhere.

Stop relying on a single Git provider

Set up automated repository mirroring in minutes. Free for private users.

Sign In

FAQ

Common questions

Does GitReposBackup store my source code?

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.

Is this a hosted SaaS product?

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.

Which Git providers are supported?

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.

Can I connect multiple accounts from the same provider?

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.

Does it backup branches, tags, and full commit history?

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.

Can I choose which repos to mirror?

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.