From f3ed243ac4745e7dc9f5b6bd3f7b8f92da6c7ecc Mon Sep 17 00:00:00 2001 From: Ryan Fox Date: Fri, 28 Aug 2020 00:05:14 +0000 Subject: [PATCH] Blog: Add "Regarding git hosting" --- posts/2020-08-28-regarding-git-hosting.md | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 posts/2020-08-28-regarding-git-hosting.md diff --git a/posts/2020-08-28-regarding-git-hosting.md b/posts/2020-08-28-regarding-git-hosting.md new file mode 100644 index 0000000..6e3f785 --- /dev/null +++ b/posts/2020-08-28-regarding-git-hosting.md @@ -0,0 +1,46 @@ +template: post +title: Regarding git hosting +author: flewkey +timestamp: 1594525504 +license: CC-BY + +When it comes to online services, many people look past simple solutions and +jump to the large pieces of software and complicated solutions. One case of this +which I see on a regular basis is git hosting, and I don't think that most +people understand how simple it is to host git repositories. + +Many people think that hosting git is hard because they believe that it's +necessary to install and configure a code forge on their server. They will +usually install GitLab, which is +["robust"](https://docs.gitlab.com/ee/administration/operations/unicorn.html#unicorn-worker-killer) +and definitely not overkill for hosting a handful of personal repositories. +There are also a few people who install less gross robust +git services like [Gitea](https://gitea.io/) and [SourceHut](https://sr.ht/) +to host their projects. The thing is... they really don't have to. + +`git clone --bare repo repo.git && scp -r repo.git name@server:/srv/git` + +Those are the only commands needed to run to host a git repository on any server +with SSH access. The path doesn't even have to be `/srv/git`. As long as the +URI (e.g. `ssh://name@server:/srv/git/repo.git`) points to a bare git repository +which the user has read access to, they can pull from it. With write access, +they can even push to it. Amazing. + +For more information on using git with your server, read the +[relevant chapter](https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols) +from the Pro Git book. It will explain how to set up a more limited "git" user for +SSH, use the git daemon, rig up git-http-backend on your webserver, and even use +GitWeb to show a web UI. It's not much harder the simple setup above. + +There are also other projects which can compliment git hosting. If GitWeb isn't +fancy enough, there is also [cgit](https://git.zx2c4.com/cgit/). Issue tracking +can be handled with [Trac](https://trac.edgewall.org/), and +[e-mail](https://git-send-email.io/) can be used to accept patches. At that +point though, using a proper code forge might be a more suitable option. + +Self-hosting git really isn't _that_ important, nor is there anything wrong with +sticking all of one's projects on GitHub. (Most of mine are on the SDF GIT +Society anyways.) However, I've seen too many people purchase subscriptions from +GitHub for the privilege of private repositories. I'm tired of seeing unused +GitLab and Gitea instances as well. When setting up a code forge, make sure +that it's necessary.