How Git servers work, and how to keep yours secure
Is there a rock-solid git server that I can use on a home server for versioned <i>immutable</i> backups of misc. files on personal devices (e.g., account config), as well as private software development git repos?<p>(I've done a cheaper version of this -- except for the immutable part, and the separation of accounts between devices -- in the past using SSH+SVN to a home server, and it was great.)<p>I was thinking immutable from the perspective of a device.  A given device can pull branches of certain repos, and make commits to the branches.  But a device's user account on the git server doesn't have permission to affect past commits.  So, for example, if my dodgy Linux smartphone is compromised, a hypothetical person who isn't being nice can't do anything to my backups, other than make bogus additional commits.<p>Maybe each device has its own branch (e.g., `big-laptop`, `little-laptop`, `smartphone`, `media-server`), where they can commit their changes, and maybethey can pull from main/trunk.  And then the physical console for the git server lets me inspect and merge changes from the different devices, so that other devices can pick up those changes.<p>I thought about starting with Gitlab CE, but that's pretty big, so, even if the features could be made to do what I want, I don't know whether I'd always be running too many vulnerabilities that defeat some of my purposes.