Hacker News new | ask | show | jobs
by nimbius 1194 days ago
things like github and gitlab always struck me as oddities. it costs virtually nothing to deploy a containerized gitea and jenkins, or gitlab CE, and you have direct control over its performance and options without any spend.

call me old fashioned but these online git-o-matic sites just seem more like rent-seeking during a recession.

11 comments

I always reference this post when the subject of self-hosting "simple" things comes up: https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RunningSer...
It seems that most of those concerns are not alleviated by using GitHub or GitLab SaaS: "figure out the software you want to use" (you still have to choose the platform), "figure out authentication" (you still have to link your SSO with the platform), "continuous integration systems (...) or production servers that pull from your Git repos, you're going to need to figure out how to connect all of this to the Git server" (you still have to do this), "Git version compatibility" (still a concern, unless you only write code from a browser).

What a weird list.

I might be extremely naive in thinking this, but all the listed concerns on that blog post seem rather straightforward to account for. Is there a hidden complexity that I'm just not seeing?
There's always opportunity costs. What about regular maintenance and updates? What happens when a bug appears? What if the disk is full?

Working 50% freelance and 50% revenue-generating niche side-project, I always calculate my time costs. Assuming I earn $80 an hour as a freelancer and a hosted git costing $10 a month, if I estimate I will need an additional 15mins a month if I go self-hosted, then I'll pay for the hosted version.

I've seen enough projects, where they decided to self-host gitlab, only to have issues like disk full, updates needed, deployments not initiating.

When suddenly a team of 10 can't push or deploy for a day, there's additional costs there as well.

If you already have people maintaining self-hosted or cloud environments, adding GitLab to the mix would not cost anything extra. We self-hosted GitLab instance for many years at my previous job and after plugging it into monitoring/backup systems it was extremely low maintenance. Even updates were painless.
If you champion self-hosting gitea or gitlab CE, get your way, and something bad happens, you may, personally, be in trouble.

If you just go with Github or Gitlab, and something bad happens, nobody will blame you.

The first startup I joined, which was 12 people 20 years ago, had our own servers and an IT guy who took the alternate backup tapes home personally. When you have that, running as many services as possible locally, instead of paying for them, makes sense as you are increasing the value you get out of your operational capacity.

I now work in a start-up of 40 people, we don't have any servers or dedicated IT or DevOps staff. All admin gets done in the spare time of a couple of engineers, who have no desire to further lose their development time to admin/ops. It makes more sense to pay a subscription and let someone else deal with it. Even for the backend guys running that kind of service is more operationally complex than most of what they do - no-one has the experience of operating 'pets' class servers.

This comment strikes me as fundamentally misunderstanding the purpose of GitHub. I don't care that I can set up Gitea (and I already have an instance), I want GitHub because it makes it trivial for people to issue PRs to my code.

Then, because everyone has a GitHub account and knows how to use it, and everyone is already on it, everyone else goes on it too.

Not to mention that I don't need to maintain CI/container registries/asset hosts/pages myself.

There was an attempt to bring a distributed forge architecture to gitea and co. The idea being the project could be hosted on one instance but you could fork to your own to do your work before PRing back to the project.

Github but bring your own.

I believe the project died out but it was a good idea. All the benefits of Github without the lock in and single point of failure.

Git already has a distributed workflow for submitting patches: email[1].

Ultimately a "pull request" is just that; a request for someone to pull your branch into theirs. You can already add Git remotes from different services, review the changes locally, and collaborate over email. GitHub et al simply add a nicer UI for this, but there's no reason why you couldn't make a PR from one service to another. If only they'd be willing to interoperate, which is the biggest hurdle.

I'm not familiar with why that Gitea project failed, but I imagine that making this work for multiple instances of a single OSS project would be much easier.

[1]: https://www.git-scm.com/book/en/v2/Distributed-Git-Contribut...

Yeah, that would have been really good... Too bad it doesn't seem to have come to nothing.
It looks like gitea supports running a proc_receive hook which can be used to implement pull requests over git:// using a client like https://git-repo.info/en/

(full disclosure) I had written a proof of concept implementation that allows you to use the git-repo.info client to send PRs over git protocol, which you can find here https://github.com/pullreqr/pullreqr_githook

The primary impediment seems partially to be social/coordination where distributed git requires clients to be set up apriori, but it does work in cases where you are using it in house, etc.

I'd kind of be happy to spend more time on it, but with no one actually running the protocol publicly, there is no one to send/receive PRs to or from.

Basically fossil?
this is the dropbox comment for GitHub lol
How much does it cost to pay someone to administer? Including backups, BCP, integration with SSO etc?

It’ll work for a 5 person startup, but will get expensive fast for larger organizations.

> it costs virtually nothing to ...

Yeah but what's the cost of a global developer social network?

This is important, but also, “virtually nothing” is a lie. I think self hosting can work, but you have to be honest about the costs. Deployment, maintenance, rotating logs, training others on all this.
I think Github knows that and that's why it's turned into more of a "Social Media" site. Jr Dev's grind it and view it as a gateway to a job. Constant memes about "Green boxes". "Only want my Sr Dev's to have full green!111!!". In reality nobody cares, but you can tell that's how the marketing is going. And it's to the point that if I have a public product, I might as well put it on github and get that stuff for free. Even though I do run gitea in a docker container for 99% of my projects offline.
Yes, but having used both, I'd pick Gitlab CI over Jenkins anytime. YMMV, obviously.
BrandonM, is that you?
GitHub is not just hosted Git. It is a platform.