GitReposBackup gives you real-time, self-hosted Git mirroring across GitHub, GitLab, and Bitbucket — without scripts, cron jobs, or manual maintenance.
GitReposBackup is designed for developers and teams who need reliable, automated backup across Git providers — with zero ongoing maintenance. Once you configure a binding between a source and destination repository, the system handles everything: registering webhooks, verifying payloads, queuing mirror jobs, and retrying on failure.
Under the hood, every sync uses git push --mirror — the native Git operation for full-fidelity replication. Branches, tags, commit history, and all refs are preserved exactly as they exist on the source. No partial syncs, no missing history, no diverged refs.
Core Concept
A binding is a persistent, monitored link between a source repository and a destination repository. Each binding is independent, versioned, and fully controllable.
Pick any two connected accounts as your source and destination. The source is where pushes come from; the destination receives the mirror. Both can be from different providers or the same one.
Mirror all repositories in an account, hand-pick specific ones, or define an exclusion list to skip repos you don't need backed up. The scope is configured per binding and can be updated at any time.
Bindings work in any combination: GitHub→GitLab, GitHub→GitHub, GitLab→Bitbucket, Bitbucket→GitHub. You can even mirror between two different accounts of the same provider type.
Trigger a full mirror sync with a single click from the dashboard — no waiting for a webhook. Useful immediately after setting up a new binding, or before a critical release to confirm your backup is current.
Architecture
GitReposBackup syncs start seconds after you push — not on an hourly timer. Here's what happens from push to backup complete.
Not hourly. Not daily. Sync starts within seconds of your push — right when it matters, every time.
Observability
A clear dashboard shows you exactly what's happening across all your bindings — in real time and historically.
Each binding has a live status tile showing its current state: syncing, idle, failed, or disabled. At a glance you know which mirrors are healthy and which need attention.
Every sync job is recorded with its trigger time, duration, and outcome. Browse the full history for any binding to understand how frequently it syncs and spot patterns in failures.
When a sync fails, the exact error is surfaced in the dashboard — no digging through logs. Common causes like expired tokens or unreachable destinations are identified clearly.
See exactly when each repository was last successfully mirrored. Know whether your backup is seconds or minutes behind — or immediately notice if no sync has run recently.
Every action — binding created, manually triggered, token refreshed, binding deleted — is recorded in the audit log. Useful for compliance or simply understanding what changed and when.
Large repositories can take longer to mirror. Duration metrics help you understand the performance of your bindings over time and detect regressions before they become issues.
Security
GitReposBackup is built with a minimal-trust model. No code is stored permanently, no credentials leave your server, and no third-party cloud service is ever involved.
No passwords to manage or leak. Users log in exclusively via GitHub, GitLab, or Bitbucket OAuth — authentication is delegated to the provider you already trust.
OAuth access tokens are encrypted at rest using AES-256-GCM before being stored in the database. The encryption key never touches the database layer.
Every incoming webhook payload is verified against the provider's HMAC signature before processing. Unsigned or tampered payloads are rejected immediately.
Repository data is cloned at sync time, used only for the mirror operation, and deleted immediately after. No source code is retained on the GitReposBackup server.
GitReposBackup runs entirely on your own server. No data is sent to any cloud service operated by us. Your tokens, repos, and audit logs are yours alone.
Whether you're protecting a personal side project or enforcing backup policies across an engineering organization, GitReposBackup fits without modification.