Gitflare
Gitflare is a fully open-source serverless git hosting platform. No VMs, No Containers, Just Durable Objects.
Install / Use
/learn @mdhruvil/GitflareREADME
Gitflare
A self-hosted GitHub alternative built to run on Cloudflare Developer Platform. Built on top of Cloudflare Workers, Durable Objects.
[!WARNING] Gitflare is currently in very early development. Expect bugs and missing features.
Features
- Serverless Architecture - No VMs, No Containers, Just Durable Objects
- Unlimited Repositories - Create unlimited public and private repositories
- Issues & Pull Requests(soon) - Track bugs, features, and manage code reviews. Pull requests coming soon!
- On Edge - Powered by Cloudflare's global network for low latency and high availability
- Web Interface - Easily manage your repositories with a user-friendly web interface
- Open Source - Completely open-source under the MIT License
Tech Stack
- Tanstack Start - As a framework for building the web interface
- Cloudflare Workers - To handle Git smart HTTP protocol requests and hosting the web interface
- Cloudflare Durable Objects - To store and manage Git repository data
- Cloudflare D1 - For storing user data, repository metadata, issues, and pull requests
- Better Auth - For handling authentication and authorization
How It Works
Gitflare reimagines Git hosting with a fully serverless architecture. Here's how the pieces fit together:
┌─────────────────────────────────────────────────────────────────────┐
│ Git Client (You) │
│ git push / git pull / git clone │
└────────────────────────────────┬────────────────────────────────────┘
│ HTTPS
▼
┌─────────────────────────────────────────────────────────────────────┐
│ Cloudflare Workers (Edge) │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ TanStack Start Application │ │
│ │ │ │
│ │ • Authentication & Authorization │ │
│ │ • HTTP Handlers for Git Smart Protocol │ │
│ │ - git-upload-pack (fetch/pull) │ │
│ │ - git-receive-pack (push) │ │
│ │ - Pkt-line protocol parsing │ │
│ │ - Packfile creation & transfer │ │
│ │ • Web UI │ │
│ └───────────────────────────────────────────────────────────────┘ │
└──────────────────┬────────────────────────────┬─────────────────────┘
│ │
│ Git Operations │ Metadata Queries
▼ ▼
┌──────────────────────────────────┐ ┌─────────────────────────────┐
│ Cloudflare Durable Objects │ │ Cloudflare D1 │
│ │ │ │
│ ┌────────────────────────────┐ │ │ • User Accounts │
│ │ Virtualized File System │ │ │ • Repository Metadata │
│ │ (Built on DO SQLite) │ │ │ • Issues & Comments │
│ │ │ │ │ • Real-time Subscriptions │
│ │ • Git Objects Storage │ │ └─────────────────────────────┘
│ │ • Packfile Operations │ │
│ └────────────────────────────┘ │
│ │
│ (One Durable Object per Repo) │
└──────────────────────────────────┘
The Flow
1. Git Protocol Handling
When you interact with a Gitflare repository using standard Git commands, the request hits HTTP handlers in the TanStack Start application. These handlers implement the Git Smart HTTP protocol, translating Git's wire protocol into operations that can be executed against the repository storage. The entire TanStack Start app runs on Cloudflare Workers, deployed globally at the edge for minimal latency.
2. Repository Data Storage
Git repository data including all objects (blobs, trees, commits, tags), references (branches, tags), and packfiles are stored in Cloudflare Durable Objects. Each repository gets its own isolated Durable Object instance with a virtualized file system built on top of Durable Object SQLite storage.
3. Metadata & Coordination
User data, repository metadata, issues, pull requests, and access control information live in Cloudflare D1. This separation allows the web interface to provide real-time reactive updates, efficient querying, and type-safe operations without impacting Git protocol performance. Cloudflare D1 also integrates with Better Auth to handle authentication seamlessly.
Project Structure
gitflare/
├── apps/
│ └── web/ # TanStack Start app deployed on Cloudflare Workers
│ # Contains Git Smart HTTP Protocol handlers, Durable
│ # Object implementations, Web UI, and routing
Prerequisites
- Node.js: v22 or higher
- pnpm: v10.19.0 or higher (this project uses pnpm workspaces)
- Cloudflare Account: Required for deployment (free tier works)
Getting Started
TODO
Development
Available Scripts
Root Level:
pnpm dev- Start all applications in development mode (Turborepo)pnpm build- Build all applicationspnpm check- Run Biome linting and formatting checkspnpm check:fix- Run Biome and auto-fix issues (run this after making code changes)
Web App (apps/web):
pnpm dev- Start the web development server (Vite)pnpm build- Build the web applicationpnpm serve- Preview production build locallypnpm deploy- Deploy to Cloudflare Workerspnpm cf-typegen- Generate TypeScript types for Cloudflare Workers
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and run
pnpm check:fix - Commit your changes:
git commit -m 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Submit a pull request
License
MIT
Acknowledgments
This project was created with Better-T-Stack, a modern TypeScript stack combining React, TanStack Start and more.
Support
For issues and questions:
- Open an issue on GitHub
- Check the TanStack documentation
- Check the Cloudflare documentation
Related Skills
node-connect
333.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
333.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.0kCommit, push, and open a PR
