> learn from our mistakes and convince our teams and management to use community-maintained, libre alternatives
Every company I've been at that tried to self-host something like GitLab, later moved to GitHub. Nobody in business cares if it's open source/free software. They care about managed hosting, centralized services, invoicing, etc. DIY is great for hobbyists and the cash-strapped.
And I hope ours does too. We're on Gitlab with runners on AWS at the moment, and the overhead is huge. Thousands of working hours spent on setting up and maintaining the infrastructure (even if it's code and probably a fraction of what our own datacenter would involve), millions in costs, hundreds of jobs spinning up to do jobs.
But also, many hours spent building jobs and the like that are off-the-shelf on Github Actions.
This is the main issue though, it feels like doing anything but what the largest companies offer just costs more time and money. It reminds me of the decades long push to move away from Microsoft, only for e.g. the office 365 offering to show up and make everyone's (software, account management) work easier and cheaper, forever.
Well, what else can we say? Enjoy your unilateral price increases or features shoved down the throat (CoPilot anyone?), with exactly 0 extra money in your pocket. Unless you are a C-level, of course.
> Every company I've been at that tried to self-host something like GitLab, later moved to GitHub
Interesting, my experience has been the opposite. 99% of companies I've seen self host their VCS, it has been Gitlab (with some rare sel-hosted GitHub Enterprise everyone seems to hate, and the very rare Bitbucket).
To be fair most of them started with it when Gitlab was really really ahead, features wise. The gap has somewhat closed, but Gitlab is still a superior product IMO. Just the fact that you can have an actual organisational structure, and move it around, and share variables/configs between groupings, beats anything GitHub have to offer which is slightly nicer than GitLab.
Yep, but I interact with companies all over the world, and while American ones tend to not self-host (in general, but VCS in particular), out of those that do, Gitlab still seems more popular.
OSS can build truly incredible libraries and frameworks. User facing products? ehhhhh not so much.
GitHub has gotten worse over the years but it's not like there's some gold standard open source alternative. And remember, early GH was filled with a pretty amazing group of developers and open source advocates.
If the counter is that, instead of buying github, we could have invested in building some other tool, well, that's not how this works. People need to build what the company is actually building for its users.
I'm a contractor so have worked on a lot of different projects for different companies, big and small and also early startups.
This is far from truth imo. It is very possible to only use (F)OSS. Github, AWS, Azure, Vercel are not at all more pleasant or easier to work with than on-prem Gitlab/gitea/codeberg/jenkins/k8s/kibana/prometheus/grafana.
I could spend an hour and have a full setup done on physical or VPS to have 1) remote git hosting 2) pipelines running on changes 3) pipelines publishing images or some artifacts 4) automated deployment for these images/artifacts
I'm struggling to see what am I missing. What is worthwhile that Github offers? It is popular and easy to set up org+repos, but that seems it.
A few years ago I was working on Azure Devops with the azure pipeline and that was the worst developer experience I've ever had. AFAIK Github actions uses the same syntax and works the same way, at least it was at that time.
What you're missing is maintenance, security, scaling, and protection from data loss.
Bespoke CI is easy to build but no one wants to be in charge of rolling out a critical security patch to that on-prem box no one's touched since that consultant from 2 years ago.
Your CI has to be fully codified, stateless and possible to redeploy with a single command. That's the only way it can remain sustainable. No persistent hidden state, no manual configs (even as an option!) and automatically rebuilt on every release as the new version is deployed.
As a really big bonus, that also makes your CI testable.
Yes, totally agreed in theory, and it sounds like y'all built a great solution for your use case. But it takes substantial effort and discipline to do something like that at scale.
At some point, you develop complex interdependencies with other systems. You need sophisticated caching for optimum build performance. Techniques like GitOps are unsustainable at a certain number of engineers/commits per hour.
>I could spend an hour and have a full setup done on physical or VPS to have 1) remote git hosting 2) pipelines running on changes 3) pipelines publishing images or some artifacts 4) automated deployment for these images/artifacts
This sounds like a week or two of work to me (I'm a novice though). You should write a guide.
At work we've started switching to codeberg (which uses forgejo) and honestly it's a breath of fresh air compared to GitHub. It's blazing fast compared to GitHub and has feature parity with our needs.
I have (almost completely) moved my business from GitHub to Forgejo as well. I’m deploying an instance at home as well.
It’s shocking how bloated and slow GitHub is even for basic actions when you compare it to Forgejo running just your own stuff.
Bonus: if you can manage to reliably backup a database and a filesystem, you can then backup your forge. Outside GH Enterprise there is still no restorable backup option inside GitHub.
How is it for usability (other than speed) compared to GH. Given that most/all devs are already comfortable in GH. What are the downsides in your experience?
Selfhosting gitea is trivial, I'm saying this as someone who has been doing it at work for almost 6 years. Our experience has recently prompted another org (run by people we know) to move off GitHub, they also seem to be happy.
Forge, Gitea, and git itself contains a cgi script with quite a bit of functionality. And of course, the way it is supposed to work, git-over-ssh, as in give committers Linux shell accounts on a shared machine, with the CGI script running for pretty pictures (Remember CGI? You know, "cloud functions" before such a thing existed)
Huh, I should make an Apache plugin that launches docker exported containers uploaded into a directory.
on the other hand, a better user experience is something open source projects can aspire towards as a pure goal, with no perverse incentives pulling them the other way. a lot of the recent github changes have degraded the user experience because that was overall more profitable for the company.
> DIY is great for hobbyists and the cash-strapped.
And the companies with specific needs (funnily enough, at the other end of the cash spectrum) or have a lower internal cost than the products out there.
There's more of them out there than we give credit for I think. In particular, running one's own stack on the corner seldom makes the news.
Yours is a fairly cynical take, if realistic. It's true that hosting a forge or code repo is fairly complex and doesn't move the needle for most businesses, but…
As a CTO at a small company, I chose to self-host key infrastructure or picked small players to avoid tech giants. Perhaps there'll be more businesses like that, where decision makers put their money where their mouth is.
Every company I've been at that tried to self-host something like GitLab, later moved to GitHub. Nobody in business cares if it's open source/free software. They care about managed hosting, centralized services, invoicing, etc. DIY is great for hobbyists and the cash-strapped.