title:Forget GitHub, Git Forgejo
posted:2025-04-05
tags:["all", "apps", "selfhosting"]

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:

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.


  1. 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↗↩︎

  2. Are there scrupulous AI crawlers? It sure doesn't seem like it. ↩︎

  3. 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. ↩︎

  4. I'm writing another post on those details for the other blog↗, hopefully I'll finish that up soonish↩︎


📧 Reply by email

runtimeterror 


 John Wq