Note this is only tested on Ubuntu 12.04 Server with apache2, I’m sure it would work on the desktop version also.

Installing Git:

sudo apt-get install git-core

Optional, setup git global settings:

git config --global user.name "Your Name"
git config --global user.email [email protected]

SSH Key:

Generate ssh public/private key on the machine you would like to access git repo from and copy it to the server into the /tmp/ directory, for reference here is the command:

ssh-keygen -t rsa -C "name@computer"

Installing Gitolite:

sudo apt-get install gitolite

Create a user to access gitolite with, in this case I chose git since I don’t like to type:

sudo adduser \
    --system \
    --shell /bin/bash \
    --gecos 'git version control' \
    --group \
    --disabled-password \
    --home /home/git \
    git

Now login to the newly created user, and set the path, and move to its home directory:

sudo su git
echo "PATH=$HOME/bin:$PATH" > ~/.bashrc
cd

Run the gitolite setup command with the public key you copied to the tmp directory to initialized the location for gitolite use. Then change the $REPO_UMASK to 0027 when it opens the .gitolite.rc for editing during the installation process. If it didn’t open the file for any reason just open it up in vim (Note this is only if you’d like to use gitweb):

gl-setup /tmp/rachel.pub
# change $REPO_UMASK = 0077; to $REPO_UMASK = 0027; # gets you 'rwxr-x---'

Afterward, it has made the gitolite-admin.git, testing.git repo and all other necessary files. Check to see that everything works by cloning the repo on the machine with the public/private key.

git clone git@<server>:gitolite-admin.git

Here is a resource about the syntax for the config file and adding users.

Install Gitweb:

This is the tricky bit… Install gitweb and the highlight app. Gitweb is located at ‘/usr/share/gitweb’

sudo apt-get install highlight gitweb

Edit the gitweb config to the locations of the project list and repos, and add the highlighting bit at the end of the file:

sudo vim /etc/gitweb.conf
# change $projectroot to /home/git/repositories
# change $projects_list to /home/git/projects.list
# Add Highlighting at the end
$feature{'highlight'}{'default'} = [1];

Change gitolite instance to allow access for gitweb. First append www-data to git group so gitweb can access the repos, then change the permissions for git repos and the projects list, finally restart apache:

sudo usermod -a -G git www-data
sudo chmod g+r /home/git/projects.list
sudo chmod -R g+rx /home/git/repositories
sudo service apache2 restart

Finally you need to tell gitolite which repo you want to show up in gitweb. To do this edit the gitolite.conf file from the gitolite-admin.git repo:

repo testing
  RW+ = @all
  R = gitweb