Real-time backup

Real-time Git backup, not nightly

A nightly backup can lose a full day of work. Git Replica starts backing up the moment your provider reports the push.

01 — The pipeline

From git push to backed up, in seconds

Push, provider webhook, verified event, queued job, mirrored push — nothing in that chain waits for a clock.

Your repository
git push
Provider webhook
signed push event
Git Replica
verify → queue → mirror
Destination
always current

Signed events only

Every incoming webhook is verified against the provider's HMAC signature before anything runs. An unsigned or mismatched event is rejected, not queued.

Queued, not blocking

The job is queued the instant the webhook is verified and retried with backoff if the destination is briefly unavailable. A slow destination never delays the next push's turn in line.

Typically seconds

End to end — webhook delivery, queue, clone, and push — a sync typically completes in seconds. The exact time depends on repository size and how quickly your provider delivers the webhook.

02 — Compare

What a schedule costs you

A cron job isn't wrong, exactly — it's just always behind by however long the interval is.

Backup schedule Nightly cron Hourly cron Real-time
Worst-case work lost Up to 24 hours Up to 1 hour The last push
A busy repo's exposure A full day of commits An hour of commits Effectively none
Notices a broken backup Next morning, maybe Within the hour On the failing push
Cost when nothing changes A full run anyway A full run anyway Nothing runs
03 — Belt and braces

Real time, with a schedule as the floor

Push-triggered sync is the default for every provider source. A schedule runs underneath it, so one dropped webhook is never the whole story.

Push-triggered by default

GitHub, GitLab and Bitbucket sources sync on every push. Git Replica registers the webhook when you connect the account — there's nothing to schedule or trigger by hand.

A schedule as a safety net

Every binding also runs hourly, daily, or weekly, independent of webhooks. If a provider ever fails to deliver an event, the next scheduled run catches the repository back up.

Manual sync any time

Trigger a sync with one click whenever you want certainty — right before a risky force-push, a migration, or just to confirm a binding is healthy.

04 — When it fails

A failed backup should be loud

A backup that fails silently is worse than no backup — it's one you trusted.

Automatic retries

Transient provider and network failures are retried with backoff instead of failing the sync outright on the first hiccup.

A per-step sync log

Every step — clone, verify, push — is recorded with its own status. When something fails, you see exactly which step it was and why.

Email on failure

Turn on failure email per account, plus an optional periodic summary. A broken binding tells you instead of waiting to be discovered.

05 — Coverage

Which sources sync on push

Real-time sync depends on a webhook. Not every kind of source has one to register.

GitHub, GitLab, Bitbucket

Connected over OAuth, these sources get a webhook registered automatically. Every push reaches Git Replica within moments — no polling, no scheduled scan.

Self-hosted and custom remotes

Any Git server reachable over HTTPS or SSH — Gitea, an internal GitLab, a bare server — syncs on a schedule or on demand instead. Git Replica does not register a webhook on these, so they are never real-time.

FAQ

Real-time backup questions

How fast is "real time"?

End to end — webhook delivery, queue, clone, and push — a sync typically completes in seconds. There's no fixed SLA; the exact time depends on repository size and how quickly your provider delivers the webhook, which Git Replica doesn't control.

How does Git Replica know a push happened?

Git Replica registers a webhook with your provider when you connect a repository. Every push fires that webhook, the payload is verified against the provider's HMAC signature, and only a verified event is queued as a sync job. Nothing polls or scans your repository on a timer.

What if a webhook is never delivered?

Every binding also runs on a schedule — hourly, daily, or weekly, whichever you choose — independent of webhooks. If a webhook is dropped by the provider or lost in transit, the next scheduled run catches the repository up, and you can trigger a sync manually at any time.

Does real-time backup work with self-hosted Git servers?

No. Real-time sync depends on the source provider calling a webhook, and Git Replica does not register webhooks on self-hosted or custom Git servers. Those sources sync on a schedule — hourly, daily, or weekly — or on demand. GitHub, GitLab, and Bitbucket sources get real-time sync because Git Replica registers a webhook with the provider when you connect the account.

Stop losing a day of work to a nightly job.

Set up push-triggered backup in under two minutes. Free for open source and private non-commercial use.

Get started free