I've been running my own personal git server for a few years now, starting with Gitea1 and then moving to Forgejo↗ ("for-jay-oh"). Until recently, though, that was primarily a mirror of the code I was maintaining on GitHub. And then, well, 2025 happened and I had a sudden urge to reduce or remove my reliance on US-based companies and services while taking more ownership over my stuff.
So I scrapped my old and barely-maintained instance in favor of a shiny new one, hosted in Germany with Hetzner↗ at git.vim.wtf↗. It sits behind Anubis↗ to shield it from unscrupulous AI crawlers2 that want to suck up my code (and use up my limited resources3). I (of course) have it connected to my tailscale network and use Tailscale SSH for my SSH-based git interactions - which means I don't have to expose the server's SSH interface to the world. My setup also leverages Tailscale's handy OIDC provider, tsidp↗ for quick-and-easy authentication when accessed from my tailnet (while not exposing a standard login form for bots to hammer).
I spent a few weeks living in the new environment, and I have now migrated all of my current projects over to the new spot (and archived the sources on GitHub). It took a little bit of fiddling to get all the GitHub Actions workflows converted to Forgejo Actions4 , but that's all sorted now.
A few project highlights:
- runtimeterror↗, which powers my other blog↗, including deploying it to Bunny CDN.
- lolz↗, which manages my omg.lol↗ profile↗ and /now↗ pages (and fetches near-realtime weather data for the profile page).
- notes↗, which publishes selected SilverBullet notes from a private repo to notes.runtimeterror.dev↗.
- packer-proxmox-templates↗, which builds fresh VM templates for my homelab each week.
- compositions↗, where I track the Docker Compose configs for my container workloads.
I'll still hang on to my GitHub account for collaborating with other open source projects, but all of my personal work will be on git.vim.wtf↗ going forward.
Forgejo forked from Gitea↗ after the former project was taken over by a for-profit company. That seems to have been the right move, as that project is now leaning into AI bullshit↗. ↩︎
Are there scrupulous AI crawlers? It sure doesn't seem like it. ↩︎
In addition to just consuming bandwidth, aggressive crawlers can quickly use up a smaller Forgejo server's disk space↗ as archive downloads get created on access. That burned me a few times on the previous deployment. ↩︎
I'm writing another post on those details for the other blog↗, hopefully I'll finish that up soonish. ↩︎