Some thoughts on personal Git hosting
61 comments
·September 7, 2025divbzero
> You can git clone the repo to your local machine, and you can manually move it elsewhere, but there's no way to send a PR from your repo to mine.
There is a native git request-pull command [1] that generates a summary of pending changes to pull into an upstream project, but it doesn’t enjoy support for all the features offered by GitHub pull requests or GitLab merge requests.
quectophoton
Yeah, `git request-pull` is only a helper to create a pull request, while GitHub/GitLab/etc include that in addition to a (convenient) vendor-specific way to track received pull requests and a code review web interface.
Initiatives like ForgeFed are trying to define a more neutral way to share this information, but I don't think there's any estimate date for when there'll be an actual implementation of it. If that ever happens, it'd be possible to get vendor-neutral tooling for that kind of collaboration.
monegator
All the drawbacks are not drawbacks to me. My projects, my repos, my private server. I don't want nor need to show off ("collaborate") and if i did.. what's the point of self hosting then? Just use github/gitlab/codeberg.
I don't even need to rent a server for that. Everything runs on my router (openWRT is amazing)
goku12
> I don't want nor need to show off ("collaborate") and if i did.. what's the point of self hosting then? Just use github/gitlab/codeberg.
Let me repeat this again. We didn't centralize git when we started using github/gitlab etc. We centralized discoverability and reach of projects.
So far, everything else can be decentralized - issue tracking, pull requests, project planning, ci, release management and more. But we still don't have a solution to search projects on potentially thousands of servers, including self-hosted ones.
skydhash
> But we still don't have a solution to search projects on potentially thousands of servers, including self-hosted ones.
We do.
https://mvnrepository.com/repos/central
https://www.debian.org/distrib/packages#search_packages
https://elpa.gnu.org/packages/
And many others.
And we still have forums like this one and Reddit where people can just announce their project. Github is more of a bad code refuge than a high signal project discovery.
ioasuncvinvaer
These are all for their own ecosystems and usually libraries only.
righthand
> But we still don't have a solution to search projects on potentially thousands of servers, including self-hosted ones.
Why do you need a search index on your self hosted git server? Doesn’t Kagi solve that?
OhMeadhbh
Fwiw.. I have a "normal" private git server over SSH, but for public projects, it copies merges into blessed branches to public, read-only repos accessible via HTTPS. Here's an example:
I sort of punted on receiving patches and merge requests because most of the projects I'm distributing in this way aren't really open source, but "published source" and there's a small community of people who use them. The people who use the public, read-only repos know how to generate patches and distribute them via email or (in one case) uploading them to an S3 bucket.
Anyway... your mileage may vary, but it's worked reasonably well for a small community. Not sure I would recommend it for a huge open source project.
account42
While less popular these days, email-based workflows don't have the account/federation issue - anyone can just drop by and post a patch series. Of course the workflow itself is going to be an obstacle for most but I'm not sure if that's inherent or only because it's not what people are used to.
ghosty141
gitweb + gitolite is all you need in my opinion for hosting private projects. I have had a wonderful experience with it since there are no complex databases, config files etc and it’s very light on resources
eviks
> 1. Leave my popular / sponsored repos on GitHub > 2. Move my smaller repos to https://git.edent.tel/
Wouldn't 2. make transitioning them into 1. "impossible"?
mixcocam
I think that the best way to move away from github is to go full chad and doing mailing list with patch submissions à la LKML.
edent
Perhaps I'll go old-school and insist that any patches are stamped into punch-cards before I'll accept them.
mixcocam
only rational way to move forward!
but in all seriousness, i do think that there is a lot of merit in the LKML way of doing things. otherwise all of our servers would be on fire now!
maybe and the insane capacity to sell things from the githubs, gitlabs of the world have brainwashed us!
skydhash
> Suppose you want to make a Pull Request or just take a copy of the code. At the moment, you have to create a fork on my server. There's no way to easily fork something to your GitHub or personal server.
Why are people so keen on having that network graph of forks? It's not necessary for collaboration. Status symbol?
edent
I don't see it as a status thing - I see it as a convenience thing.
If I want to fork your code and contribute back, that means I need to be on the same system as you.
There's a bunch of Gnome projects which require me to sign up to their specific git hosting service before I can contribute.
On most git servers, I have to fork in order to send a PR, which often means I have to create a fork on their system - which means I need to set up something to replicate it to my local machine.
It's all friction.
I'd love to see a project on (for example) GitHub and then clone it to my GitLab, work on it there, and send a PR from GL to GH.
skydhash
> If I want to fork your code and contribute back, that means I need to be on the same system as you.
You really don't. You just clone, code, commit, and send a patch (which is just one or more text files). That's it. You may just code and do a diff, if it's a simple fix.
The project may have a more complex policy to accept contributions. But a Fork and a PR is not a requirement.
edent
OK. Let's say I clone to my local machine, make some changes, and commit.
How do I submit the patch to the repo on GitHub / GitLab / CodeBerg / whatever?
Presumably I need to hunt down the maintainer's email?
webstrand
On lower frequency repos, I often look through the github forks to find patches for issues or features that were not upstreamed. Its not infrequent I find a nice feature someone implemented for themselves but didn't upstream because it wasn't quite quality enough, making a PR is a lot of effort especially when its not clear that it'll ever be accepted.
impure
GitLab is open source, you can self host it. Although the system requirements are quite high, you will not be able to host it on a two euro VPS.
And I wouldn’t be that concerned about contributors. It’s only the very top projects that get any contributors. And even then most of the time contributors are not worth the hassle.
akkartik
Critical data here is how many PRs one is creating on others' projects and receiving on one's own projects. To me OP sounds like "Lifestyles of the Rich and Famous." At my level of git collaboration, just git push contributions on any code forge and send me a link, and I'll do the work to pull it in wherever I am.
zokier
> You can git clone the repo to your local machine, and you can manually move it elsewhere, but there's no way to send a PR from your repo to mine
Have people forgotten that email exists?
skydhash
For simple changes, you can just `git diff` it to a file, put that file on a pastebin and share that link with any communication tool (or share the file directly). `git format-patch` is more where you want to share the commits (message and all). And you're not tied to using email. It's just a collection of files that you can share using whatever.
edent
Sure. But then I have to copy that patch, hope my email client hasn't mangled it, upload it somewhere, run an arcane command.
Do you not see how much easier something like GH is?
1718627440
So instead of:
local$ git push
upstream$ git fetch && git merge
it becomes: local$ git format-patch
local: open file picker for attachments.
upstream: save as ...
upstream$ git am
That's not that much different in time and effort.skydhash
You can store the patch somewhere (pastebin, cloud drive), and send the link instead. Or attach them to the email. No need to directly use `git send-email` or copy it in the body of the email.
edent
OK, but then I still have to do work to get that patch and integrate it into my existing systems.
I don't know if you've ever used GitHub, GitLab, or CodeBerg - but PRs just appear in a list there. I don't need to do any work. Very handy especially if they're big changes.
I can also leave comments on specific bits of code, rather than emailing someone.
dogleash
My email client (the default offering from my service provider ofc) is a POS. Therefore all of email is a miserable, failed tool and I can't believe you're being such a boomer rn.
I have no problems publishing my public projects on GitHub or Codeberg. Secretly hoping that LLM-Crawlers will choke to dead on my bad code.
But private stuff runs on my own servers.
In 2025 it's mostly maintenance free once the setup is running: Debian will be updated fully automated using unattended-update and the hosted application when there's the need to do one manually. Backups automatically every night using Proxmox and its little brother Proxmox Backup Server. Even with valid certificates using DNS-Auth from Lets Encrypt.