Hi, i’m a software developer and i want to implement a self hosted git server on my home server. I hear about gitea, gogs, gitlab, GitBucket, kallithea, etc… but i don’t know how choose.
Forgejo maybe? (Gitea fork)
Gitlab
I recently moved from gogs to gitlab. Mostly for the built in CI. Pretty happy with it. Install one, and try it for a bit, only way to know if it suits you. Its not too hard to switch between them if you have to transition later on, just git clone and repush to the new server.
Just plain git over ssh does the job for me. Nothing else needed to “host” it.
Gitea.
I personally love onedev.
I’ve enjoyed Gitea, has GitHub compatible actions and (as of this week) even supports scheduled workflows (like cron). I’ve used GitLab in the past and this is a much better experience.
In my opinion, Gitness, its very Good git ui server, for self-host with DI (https://github.com/harness/gitness)
Gitea is what I use. I see a lot of recommendations for gitlab, but I have some experience with it as well as github and for the life of me I can’t understand the gitlab people.
Do they not see the persistent and ridiculous bugs? Merge requests are ajax based and their initial load stage frequently shows errors like ‘branch “master” does not exist’ and then 1s later ajax loads and shows the MR. But then when you go to view the diff, half the diffs don’t load and when you click on them they still don’t load until you decide to click on somewhere else, then the page loads and highjacks your scroll to take you to god knows where.
Gitlab is a mess. If you just use it for yourself I guess it’s fine, but if you’re installing it for the web-frontend, literally any other git front-end is better.
used bonobo for a while and was happy with it.
Gitolite is an excellent choice if you want to host multiple Git repositories and regulate access to them without any unnecessary bloatware. It focuses solely on Git repositories and access control. Setting it up is relatively straightforward.
I am currently experimenting with soft serve, which is just a terminal interface to git. Looks fairly nice so far, doesn’t clutter my server and seems to run stable (at least the last week, just started testing). I also wanted to test gitea but this is just for my solo stuff and gitea looks like it would be overkill for that
If you don’t need a UI, I would use this: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
I use OneDev. I haven’t tried anything else since I’m happy with it.
Things I like
Personal git server
Web interface
Automated Build pipeline
Ability to clone repos on github locally for my own copy. Given githubs reputation for deleting repos it doesn’t like, this is a good way for me to have my own source server.
Always online, always available .
I used gitlab for a while, but it was a bit resource-heavy for my two whole projects. So just a heads up I suppose.