This page contains a comprehensive guide to setting up cgit on NearlyFreeSpeech. It is assumed that you already have an account with NFS and also have access to a "site" online.

Most of the following has been lifted from NearlyFreeSpeech cgit application walkthrough but has been tweaked and updated.

You can see a live version here.

Building cgit

The following assumes that you wish to have cgit running at the top-level of your chosen domain (ie. git.example.com)

SSH into your account then download and unpack the latest release:

git clone git://git.zx2c4.com/cgit cgit-src
cd cgit-src

Create a cgit.conf file with desired locations:

CGIT_SCRIPT_PATH = /home/public
CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
CGIT_CONFIG = $(CGIT_SCRIPT_PATH)/cgitrc
CACHE_ROOT = $(CGIT_SCRIPT_PATH)/cgitcache
prefix = $(CGIT_SCRIPT_PATH)/local

Get the git sources (needed to build libgit):

git submodule init
git submodule update

Build and install it:

gmake install

Configuration

Make a text file named cgitrc where you specified CGIT_CONFIG and add the following (these are some personal defaults to make things cleaner):

logo=/cgit.png
root-title=main root title
root-desc=description for your git server
root-readme=/home/public/about.md
virtual-root=/

about-filter=/home/public/cgit-src/filters/about-formatting.sh
readme=:README.md
readme=:README

include=/home/protected/cgitrepos

Then in the specified file (cgitrepos), place your repos, ex:

repo.url=MyRepo
repo.path=/home/public/MyRepo.git
repo.desc=This is my git repository

And you should be good to go!