Elyndor

Backup every GitHub repo, encrypted,
off-site.

A Go daemon that backs up every repo you can see on GitHub, packs it into an AES-256 encrypted archive, and uploads it to S3 — or anything S3-compatible. One static binary; incremental on re-run; pure Go (no git required at runtime).

Elyndor
$ curl -fsSL https://dl.velaintelligence.com/elyndor/latest/install.sh | sh

Then: elyndor install · elyndor status · elyndor backup

Mirrors everything you can see

User repos and any number of organizations. Public and private. Branches, tags, and full history. Glob include/exclude when you want a subset.

AES-256 encrypted archives

ZIP archives are always encrypted; the tool refuses to start without an archive_password. Or pick tar.gz for an unencrypted bundle.

S3, anywhere

AWS, Hetzner, MinIO, Wasabi, DigitalOcean Spaces, Cloudflare R2 — anything S3-compatible. Multipart upload, configurable storage class.

Concurrent & resilient

Worker pool clones in parallel. Exponential backoff with jitter on transient network errors. Atomic temp-then-rename — no half-cloned repos left behind.

Incremental on re-run

Existing clones are fetched, not re-cloned. Re-running every night fetches only what changed. Empty repos are skipped, not failed.

Pure Go, no git CLI

One static binary. No external git required at runtime — uses go-git internally. Cross-compiled for macOS and Linux.

Any S3-compatible bucket

Custom endpoint + path-style addressing means anything that speaks S3 just works.

AWS S3 Hetzner Object Storage MinIO Wasabi DigitalOcean Spaces Cloudflare R2