Minimal git Infrastructure: Difference between revisions

From Run Your Own
Jump to navigation Jump to search
No edit summary
Line 23: Line 23:
** <code>update_single.sh</code>: https://git.bleu255.com/stagit/file/scripts/update_single.sh.html
** <code>update_single.sh</code>: https://git.bleu255.com/stagit/file/scripts/update_single.sh.html
* dont' forget to <code>chmod +x</code> them :)
* dont' forget to <code>chmod +x</code> them :)
*  
* Create a group for the users who will be allowed to create and contribute to any of the hosted 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 ==
== Usage ==

Revision as of 18:54, 1 August 2019

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, on Debian:
apt install libgit2-dev
  • 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