We are changing our system. We settled on git (but are open for alternatives) as long as we can selfhost it on our own machines.
Specs
Must have
- hosted on promise
- reliabile
- unlikely to be discontinued in the next >5 years
- for a group of at least 20 people
Plus
- gui / windows integration
At work we selfhost gitlab (paid) and I’m checking gitea for my own projects. They have a good comparison table at https://docs.gitea.com/installation/comparison
Do you also need CI/CD?
Also working in a small team with Gitea. Pretty solid the last few years.
Same. Really happy with it.
Is there a reason to choose gitlab over gitea?
We do not need ci/cd
If you don’t need CI/CD I don’t see any reasons to choose Gitlab over gitea. But I’m still testing gitea so take my words with a grain of salt :)
Gitea also has excellent CI support with builtin compatibility with github
TBH have you tried just basic git? There’s a web interface built into git itself and you can use ssh for your repositories. It’s simple and just works. If you need a faster web interface there’s also cgit. There’s no bells and whistles either. Just configure ssh, drop your repos in /srv and get to work.
If you need more that just standard basic git the. The other suggestions here are great especially forgjo!
I’m aware this is the selfhost community, but for a company of 20 engineers, it is probably best to use something commercial in the cloud.
Biggest pain point was for our ops guy, who constantly had to stay behind to perform upgrades and maintenance, as they couldn’t do it during business hours when the engineers are working. With a team of at least 20, scheduling downtimes could get increasingly more difficult.
It also adds an entire system to be audited by the auditors.
The selfhost vs buy commercial kind of bounces back and forth. For smaller teams, less than 5 to 10 engineers, it might be a fun endeavour; but from that point on, until you get to mega corp scale with dedicated ops department maintaining your entire infrastructure, it is probably more effective to just pay for a solution from a major vendor in the cloud instead.
Git should be able to go down during the day. Worst case you just can’t push to origin for a little while. You can still work and commit locally.
No PRs means no automated tests/CI/CD, which means you’d slow down the release train. It might typically be just a 2 minutes quick cycle, but that one time it goes off for longer due to a botched update from upstream means you’re never going to do that again during business hours.
Eh, we’ve had our self-hosted Github go down for a couple hours in the daytime, and it wasn’t a big deal. We have something like 60 engineers spread out across the globe, about 15-20 that were directly impacted by the outage (the rest were in different timezones). Yeah, it was annoying, but each engineer only creates like 1 or 2 PRs in a given day, so they posted their PRs after the outage was resolved while working on something else. Yeah, PRs were delayed by a couple hours, but the actual flow of work didn’t change, we just had more stuff get posted all at once after the problems resolved.
In fact, Github would have to be out for 2 days straight before we start actually impacting delivery. An hour or two here and there really isn’t an issue, especially if the team has advance notice (most of the hit to productivity is everyone trying to troubleshoot at the same time (is it my VPN? Did wifi die? Etc).
I can vouch for Forgejo
Easy to set up, has a website GUI like Github/GitLab you can use git GUIs with it
https://codeberg.org runs on Forgejo
Forgejo is leading the federated git initiative
Just to give credit where credit is due, git federation is a Forgefed Initiative
Forgejo is implementing it in their platform.
Sure, they are the same people
Any evidence of that? Genuinely curious as I can’t really find anything about them being by the same people and forgefed started as mailed-based prior to forgejo existing.
edit: seems like they are funded by different organizations and the main contributors to forgefed never worked on forgejo, they worked on vervis though.
Define, what does “git” mean to you?
The core git is a peer to peer system. You don’t need any server at all. It runs on all of your dev’s workstations anyway.
If you want a webserver with gitlab etc. on top of it, then that determines most your needs. In addition, a properly set up nameserver is very helpful, and maybe you want even an Active Directory?
We are looking for a versioning system for collaborated work. Each person shall have his own version with a central main version. Being able to commit, push and restore versions.
Thx for asking, we have a nameserver and active directory. We move this system from team foundation server / azure devops server