# Setting up source hosting NB! Some system-specific strings are used which you may need to adapt depending on your local setup: featureroot: /usr/local/share/feature/source-hosting githost: {{githost}} ## Prerequisites 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. **On your local host**, print your SSH public key e.g. with this command **from your personal system** (adapt to replace ed25519 if your SSH keypair use a different algorithm): cat ~/.ssh/id_ed25519.pub **On the server**, preconfigure git user with above public key (the whole line without newline) as $YOURKEY, and install needed packages: echo gitolite3 gitolite3/adminkey select "$YOURKEY" | sudo debconf-set-selections echo gitolite3 gitolite3/gituser select git | sudo debconf-set-selections sudo apt install gitolite3 myrepos git-daemon-sysvinit cgit cmark highlight ## Configure git access **On your local host**, Clone the gitolite3 settings repository: git clone git@{{githost}}:gitolite-admin **On your local host**, edit the file gitolite.conf, e.g. add these likes to add repository "foobar": FIXME ## Enable hook **On the server**, clone the redpill feature project for source-hosting and register with myrepos (to ease later update): mkdir --parents /usr/local/share/redpill cd /usr/local/share/redpill git clone https://source.redpill.dk/source-hosting.git mr reg Edit the file `/etc/gitolite3/gitolite.rc` to have `LOCAL_CODE` point into the project cloned above, i.e. the line should look like this: LOCAL_CODE => "/usr/local/share/redpill/source-hosting/lib/gitolite3", Refresh gitolite setup by running this command: sudo -u git gitolite setup ## Web export FIXME: move to separate feature **On the server**, grant access for gitolite to write below /var/www with this command: FIXME **On your local host**, edit the file gitolite.conf to add FIXME to repos that should be exported for web publishing, e.g. add these likes to add repository "foobar": FIXME ## Configure web access **On the server**, adapt the file `/etc/default/git-daemon`: GIT_DAEMON_ENABLE=true GIT_DAEMON_USER=gitdaemon GIT_DAEMON_BASE_PATH=/srv/git GIT_DAEMON_DIRECTORY=/srv/git/{{githost}} # Additional options that are passed to the Daemon. GIT_DAEMON_OPTIONS="--interpolated-path=/srv/git/%H/%D --user-path=public_git --export-all" Adapt the file `/etc/cgitrc`: css=/cgit-css/cgit.css logo=/cgit-css/cgit.png include=/usr/local/share/feature/source-hosting/source-hosting/etc/cgitrc