CodeFloe | Git hosting in Europe - for everyone
Git hosting in Europe. Built in the open.
A public Git service running on Forgejo, with a generous free tier, no feature behind a paywall, and infrastructure you can read.
Key facts
Hosted in Germany, under EU law
Everything runs and is stored on Hetzner in Germany, so your data falls under German data protection law and the GDPR.
Infrastructure you can read
The Ansible playbooks, OpenTofu modules, CI pipelines and monitoring configuration that drive CodeFloe are public repositories.
No feature gates
Private repositories, CI/CD, hosted pages, package registries and preview environments are free for everyone. Paid tiers only cover resource costs for storage and CI/CD.
Where we stand on AI
The most frequent questions about the innovation which moves tech the most.
We see AI as a tool, not a threat
We use AI tools ourselves, in this platform and in our own work. You are welcome to use them here too. Nothing about CodeFloe is built to make that harder.
Your code is never training data
We do not train models on anything you store here, and we do not sell or hand your data to anyone who would. Not now, and not later: it is not a business we intend to be in.
Abusive scrapers are not welcome
Aggressive crawlers can flatten a forge. We tackle them at the edge, so the platform stays fast for the people actually using it.
Forgejo on steroids
Forgejo is the complete software forge at CodeFloe's core, and most of what you use here is the Forgejo community's work: repositories, issues, pull requests, releases, packages, APIs and migrations.
We extend it in focused areas to create a more integrated developer experience, then run every change from a public fork. CodeFloe-specific work stays reviewable instead of disappearing into a private patch set.
Inspect how it runs
Most platforms ask you to trust a status page. The software, the servers and the pipelines behind CodeFloe are public repositories, so you can check instead.
```
Rate-limit by source, exempting the git protocol and package pulls
acl abusive_rate sc_http_req_rate(0) gt 100 acl is_git_protocol path_end /info/refs /git-upload-pack /git-receive-pack acl is_known_bot src -f /etc/haproxy/allowlist-good-bots.acl
http-request track-sc0 src table per_ip_rates http-request deny deny_status 429 if abusive_rate !is_git_protocol !is_known_bot ```
Excerpt from the HAProxy configuration that shields codefloe.com.
- The Forgejo fork that serves this site Every modification we run, in the open
- The Ansible and OpenTofu that build the servers How the machines are provisioned and configured
- The Kubernetes cluster behind the supporting services Status, single sign-on, Renovate and secrets
- The live status of every service Checked continuously, not self-reported
A fresh approach to costs
Running costs are partially covered by donations and by the extended tiers. Income and expenses are reported transparently, and donations are split between the people maintaining and developing the platform.
Still deciding?
Where the data sits, whether you can migrate from GitHub, who is accountable, and why we ask for donations.
Migrating from somewhere else?
Import an existing project from GitHub, GitLab or Bitbucket with its history, issues and pull requests intact. Planning to move a bunch of repositories? Our very own batch migration CLI imports many repositories in one run.