47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
template: post
|
||
title: Regarding git hosting
|
||
author: flewkey
|
||
timestamp: 1598573216
|
||
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 <del>gross</del> <ins>robust</ins>
|
||
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 complement 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.
|