git-vodka
a self-hosting Git remote on Cloudflare's free tier
Last checked:
What is git-vodka?
git-vodka is a minimal Git hosting service built on a single Cloudflare Worker, supporting public and private repositories with token-based authentication. It uses Cloudflare D1 for metadata and R2 for object storage, with a server-rendered HTML UI and no client-side JavaScript.
git-vodka pricing
Pricing model: Freemium
git-vodka pros
- Minimal deployment footprint—single Cloudflare Worker handles all Git operations
- Token-based access control supports fine-grained permissions for private repositories
- No JavaScript dependency—server-rendered HTML/CSS UI reduces complexity
- Git smart HTTP support works with standard Git clients and credential helpers
- Repository paths support optional group prefixes (e.g., ~username/group/repo.git)
git-vodka cons
- Limited feature set—no issues, pull requests, LFS, SSH transport, or garbage collection
- SHA-1 Git repositories only; no support for newer hash algorithms
- No built-in account recovery or administrative tools
- Max push size limited to 100 MiB by default and Cloudflare Worker/CPU limits
Frequently asked questions about git-vodka
How do you set up git-vodka locally?
Run `npm install`, `npm run db:migrate:local`, and `npm run dev`. Wrangler 4 provisions D1 and R2 bindings declared in wrangler.jsonc.
How do you authenticate with private repositories?
Git HTTP Basic auth uses the issued token as the password; username is conventional and not used for authorization. Use a credential helper to avoid storing the token in shell history.
How are tokens stored?
Tokens are never stored in plaintext—only SHA-256 digests are stored in the database.
What storage backends does git-vodka use?
Cloudflare D1 (SQLite) stores repository metadata, refs, users, and tokens. Cloudflare R2 stores Git objects and packfiles, with keys scoped per repository to prevent cross-repository access.