Dumbforge: Host your Git repo from an S3 bucket for free A developer released Dumbforge, a tool that lets users host Git repositories on an S3 bucket and browse them through a GitHub-like static UI without running a server or forge daemon. The project, created by the developer known as superdisk, uses Git's dumb HTTP protocol and Cloudflare R2 for free storage up to 10 GB, aiming to provide a decentralized alternative to GitHub that is fast and easy to set up. dumbforge the following text is not LLM generated Well, everyone's been talking about GitHub alternatives https://mitchellh.com/writing/ghostty-leaving-github lately. I'm pretty sympathetic to that on an ideological level and just the fundamental problem of it being down all the time , but historically the alternatives kind of suck, and I think still miss the point of Git being decentralized in the first place. Gitea https://gitea.com/ / Forgejo https://forgejo.org/ are cool, but require you to set up a server and configure it. Even though it's pretty easy, it's still annoying and requires you to pay for and babysit a VPS or whatever to run the forge program. Codeberg https://codeberg.org/ has been a platform of choice for freedom-heads to get away from GitHub, but they recently instituted a no-crypto and no-LLM rule. I respect what they're doing, but I'm pretty AI-pilled so that's not going to work for me. It occurred to me that you don't actually need to run a forge or git daemon at all, since Git supports cloning via the so-called "dumb" HTTP protocol https://git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols . You could theoretically just throw your git repo into an s3 bucket, and it would be clone-able, no daemon or VPS required. So that's cool, and even more decentralized; but the problem with self-hosting git like that, is that then you don't have the nice landing page, file browser, commit log, etc etc. It's small, but it makes a big difference to have a GitHubby UI for each project. SourceHut https://sourcehut.org/ and Savannah https://savannah.gnu.org/ struggle with this I think, since they're pretty alien to normies. So I slopped dumbforge together as a proof of concept; it's a git remote helper that also functions as a static-site-generator-like-thing, which pushes directly to an s3 bucket, and generates a GitHub-like UI. So you get some really nice advantages: - It's super fast to browse, since it's just static HTML. GitLab and GitHub itself are really slow clunky beasts. - You don't need to administer a git daemon or forge server. - It's free if you're storing less than 10 gigs, using CloudFlare R2. - You're decentralized, bro Well, mostly. I'll grant that the implementation could most certainly use some improvement but this is mostly just to show off the idea. I hope it piques your curiosity. 🤔 If you want to see one of my actual repos presented by dumbforge , check here. https://dumbforge.dev/hUGETracker.git the following text is LLM generated Install npm install --global @superdisk/dumbforge Git itself must also be installed. The implementation deliberately asks Git to create packfiles instead of reimplementing its storage format. Configure an R2 remote An R2 remote has two addresses: - the S3 API endpoint , which dumbforge uses to push with your credentials; - a public URL , which browsers and ordinary Git use without credentials. The S3 API endpoint is not the public URL. It normally looks like https://ACCOUNT ID.r2.cloudflarestorage.com . The public URL is either an r2.dev development URL or a custom domain such as https://git.example.com . 1. Create a bucket and make it public In the Cloudflare dashboard, open Storage & databases → R2 , create a bucket, and open its Settings page. Give it either a Public Development URL or a custom domain. A custom domain is preferable for anything you intend to keep; the r2.dev URL is fine for testing. You do not need to configure CORS. You should now have these three values: Bucket: my-bucket S3 endpoint: https://ACCOUNT ID.r2.cloudflarestorage.com Public URL: https://git.example.com 2. Create credentials for dumbforge From the R2 overview, select Manage R2 API tokens → Create API token . Give the token Object Read & Write access and scope it to the new bucket. When Cloudflare creates it, copy the Access Key ID and Secret Access Key . The secret is only shown once. These are S3 credentials, not your normal Cloudflare API bearer token. You do not need an AWS account. R2 implements the S3 protocol, and dumbforge directs the S3 client to Cloudflare's endpoint. The easiest way to save the credentials is with the AWS CLI: aws configure --profile my-r2 Answer its prompts like this: AWS Access Key ID: