diff options
author | Jonas Smedegaard <dr@jones.dk> | 2021-04-20 22:14:14 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2021-04-20 22:14:14 +0200 |
commit | 4f728070b7e7be3301bc66dc24894df12f4f9b14 (patch) | |
tree | 66d60249bc81a60fc53c7642fd5ee85c92d3daf3 | |
parent | 95862f2b20c81294413824ec2dd00f9b17905994 (diff) |
preliminary gitolite3 documentation
-rw-r--r-- | SETUP.md | 24 | ||||
-rwxr-xr-x | lib/gitolite3/hooks/common/post-receive | 25 |
2 files changed, 47 insertions, 2 deletions
@@ -8,9 +8,29 @@ githost: {{githost}} ## Prerequisites -Install needed packages: +Gitolite service need to know the public SSH key of its administrator. +You can let it ask during install, +but it may be more convenient to preconfigure that information instead. - sudo apt install git git-daemon-sysvinit cgit cmark highlight +One way to preconfigure the needed SSH public key +is to run this command +**from your personal system** +which then **logs into the server system** using ssh +(adapt to replace ed25519 if your SSH keypair use a different algorithm): + + printf 'gitolite3 gitolite3/adminkey select "%q"' $(cat ~/.ssh/id_ed25519.pub) | ssh {{githost}} sudo debconf-set-selections + +Another way is to somehow locate your public SSH key +and run this command +(adapt to replace $YOURKEY with your actual key): + + echo gitolite3 gitolite3/adminkey select "$YOURKEY" | sudo debconf-set-selections + +Then preconfigure git user, +and install needed packages: + + echo gitolite3 gitolite3/gituser select git | sudo debconf-set-selections + sudo apt install gitolite3 git-daemon-sysvinit cgit cmark highlight ## Configure git access diff --git a/lib/gitolite3/hooks/common/post-receive b/lib/gitolite3/hooks/common/post-receive new file mode 100755 index 0000000..9342075 --- /dev/null +++ b/lib/gitolite3/hooks/common/post-receive @@ -0,0 +1,25 @@ +#!/bin/sh +# This gitolite3 hook exports content for web publishing. + +# The following gitolite3 environment variables affect its use: +# WEB_BRANCH tree-ish (hook silently skipped if unset) +# WEB_BASEDIR path writable by gitolite3 (default: /var/www/gitolite3) + +set -eu + +[ -n "$GL_OPTION_WEB_BRANCH" ] || exit 0 + +# which git branch to check out +WEB_BASEDIR=${GL_OPTION_WEB_BASEDIR:-/var/www/gitolite3} + +GIT_WORK_TREE="$WEB_BASEDIR/$GL_REPO" +export GIT_WORK_TREE + +pwd +echo "Checking out content to $GIT_WORK_TREE ..." + +git checkout -f "$GL_OPTION_WEB_BRANCH" + +chmod -R u=rw,go=r,a+X "$GIT_WORK_TREE" + +echo "Checkout completed succesfully!" |