Open source · Self-hostable

Store and serve files with Git as your backend

Upload files to your GitHub repos and serve them through a fast API with CDN caching. No vendor lock-in. You own every byte.

Why GitVault?

The problem
  • S3, Cloudinary, R2 — yet another service to configure and pay
  • Storage costs that grow unpredictably with your app
  • Your files locked in proprietary platforms with vendor lock-in
  • Complex SDKs, IAM policies, and permissions to set up
The GitVault way
  • Use GitHub repos you already have — free and unlimited
  • No storage fees — GitHub handles it for you
  • You own every file in your own repo — portable and transparent
  • Simple REST API with key-based auth — one curl and done

How it works

Three steps to start serving files

1

Connect a repo

Link an existing GitHub repository or create a new one. Install the GitHub App and you're ready.

2

Upload files

Drag and drop through the dashboard or use the REST API. Each file is committed with SHA-256 deduplication.

3

Get your URL

Every file gets a public CDN link or a private authenticated endpoint. Share or protect as needed.

Everything you need

Built for developers who want simple, reliable file hosting

GitHub-backed storage

Every file is committed to a GitHub repo you control. Reliable, versioned, always yours.

CDN-fast serving

Public files served from GitHub's CDN. Private files streamed securely through the API.

Secure access

Firebase Auth with email, Google, or GitHub. Scoped API keys for granular control.

REST API

Upload, list, and serve files programmatically. HTTP Basic auth with scoped API keys.

Smart deduplication

SHA-256 content hashing prevents duplicates. Upload the same file twice, stored only once.

Version history

Every upload is a Git commit. Roll back, audit, or diff your files with standard Git tools.

Developer-first API

Upload and serve files with a single HTTP request. Use API keys with scoped permissions for secure access.

Get started free
Terminal
# Upload a file
$ curl -X POST \
  -u YOUR_KEY:YOUR_SECRET \
  -F "file=@photo.jpg" \
  -F "visibility=public" \
  https://api.gitvault.dudiver.net/v1/vaults/{id}/files

# Get the public URL
> https://api.gitvault.dudiver.net/f/abc123/photo.jpg

Open source

Self-host it yourself or use our hosted version.

Free to self-host
$0/month
  • Unlimited vaults
  • Unlimited file uploads
  • API access with scoped keys
  • Public and private files
  • Full source code on GitHub
Get started free

Open source and community driven

GitVault is fully open source. Star us on GitHub, report issues, or contribute code.