I am looking for recommendations for an open source self-hosted version control system source code hosting service. I found a few, but I can’t decide on which one to pick:
If there’s a better one than the ones I’ve listed here, I’d love to hear about it!
I care primarily about privacy and security, if that makes any difference.
Forgejo - actively developed open source. It’s what powers Codeberg. Easy to set up and manage with Docker. I moved to it from Gogs and skipped Gitea after reading about the forks.
Gogs is the original. Gitea is a fork because the dev of Gogs wasn’t taking community input (I think that was the reasoning behind it). Forgejo is a fork of gitea because some folks didn’t like gitea forming a for profit corporation (Or something to that effect).
As far as day to day use they’re all fairly similar, though it’s been a long time since I used Gogs.
IMO, the Gogs dev was correct. If you look at that community input and what Gitea became, I was glad to use the version that rejected it.
But I don’t know how it compares with Forgejo.
what’s the problem with gitea? I never used gogs so I can’t compare it
The added features made it harder to deploy, came with some bugs, and overall traded a simple design for community-oriented features that IMO were a negative value overall.
made it harder to deploy? Isn’t it still just a single binary, a config file and a directory for data?
bugs are inevitable for evolving software.
which community oriented features do you mean? are they in the way, or is it just that you don’t need them?
+1 for Forgejo
Used Gitea for a while, and decided to switch to Forgejo before the hard fork split (no more code from Gitea), been using it since, In my opinion both work well, but prefer Forgejo.
Those 3 are all fairly similar. Here are some others I can think of:
- Gitlab: many features, complex, pr workflow.
- Forgejo / Gogs: simpler, github inspired interface, pr workflow.
- Radicle: peer to peer, idk much more…
- Sourcehut: minimal (non-github) interface, very modular, email workflow.
- Cgit / Gitweb / etc.: just a git interface, no specific workflow.
If you’re not using any of the additional features, cgit should be enough. If you’re planning on collaborating with others, probably Forgejo would be better.
You can also use individual components of sourcehut, if you want a git web interface with just issue tracking, ci, or wiki, for example.
Not what you want probably but Tangled.sh
tightly-knit
social coding. tangled is new social-enabled git collaboration platform built on atproto. we envision a place where developers have complete ownership of their code, open source communities can freely self-govern and most importantly, coding can be social and fun again.+1 for Forgejo here. It’s lightweight on resources compared to GitLab but still has all the features you’d need, plus the security/privacy focus aligns with your priorities. I’ve been running it on a small VPS for over a year and it’s been rock soild.
How about Fossil ??
Basically it’s an alternative to Git itself, has commands similar to git but with an added bonus of having Github-like features, like:
- A frickin GUI
- Bug-tracker
- Wiki System
- Ticketting system
- Forum + Chat
- Web-Server
Best part !! It’s just one file & the website I linked is a self-hosted instance
My only input is gitlab is very complicated, never used the others





