Minimal git Infrastructure

From Run Your Own
Jump to navigation Jump to search

Goal: To run your own minimal git infrastructure exclusively for your shell users (sorry no guest, no wiki, no issue tracker, and send patches via email plz or GTFO), making use of ancient ACL magic, and providing a web interface with stagit for public repos browsing and anonymous read-only clone/pull. In this example we use LURK's domain name and server setup as an example.

Prerequisites

Installs

  • Install libgit2 headers and ACL tools, on Debian:
apt install libgit2-dev acl
  • Compile and install stagit, a static git page generator:
cd /usr/src
git clone git://git.codemadness.org/stagit
cd stagit
make && make install

configs

We need two directories, one for serving the public static files, and one for keeping the bare git repositories.

  • create these directories for your repos and for stagit:
mkdir -p /var/www/git.lurk.org/repos
addgroup gitusers
  • Give this group the permissions to modify each others files in the git folders:
setfacl -Rm g:gitusers:rwX /var/www/git.lurk.org/
setfacl -d -Rm g:gitusers:rwX /var/www/git.lurk.org/

Usage