Install Fossil-SCM on a Raspberry Pi

This is a shortened tutorial/checklist for installing Fossil, the distributed software configuration management system on a Raspberry Pi computer.

Why would you want that?

Here is a list of features from the website:

Integrated Bug Tracking, Wiki, Forum, and Technotes

Built-in Web Interface

Self-Contained

Simple Networking

Simple Server Setup

Autosync

Robust & Reliable

Free and Open-Source - Uses the 2-clause BSD license.

Inventory List

  • Raspberry Pi 3B+

  • 16GB SD card

  • OS: 2019-09-26-raspbian-buster-lite

Initial setup

Create the SD Card

Boot

apt update

apt upgrade

reboot

raspi-config

  • change the password

  • change the hostname

  • change the localization (if needed)

  • expand the card

reboot

I will normally give something like this a static IP address:

Edit /etc/dhcpcd.conf:

  • scroll to the bottom and uncomment the section for the eth0 card.

  • I leave the IPv6 line commented (or delete it)

  • Make sure all the IP addresses are pointing at the right things.

reboot

Install Some Developer tools

sudo apt install zsh fonts-powerline vim mc git

Install Oh My Zsh using the instructions on the website.

Get the Files

This is a zip file containing all the files referenced below:

Download the zip file

Create an upload directory and copy the files up to the server.

Install Apache2 and Fossil

It easiest to just sudo su into root for the rest.

apt install apache2 fossil

Now the Actual Work

Launch mc to move stuff around.

Copy fossil cgi script to /usr/lib/cgi-bin

Change FOSSIL=/usr/bin/local/fossil to /usr/bin/fossil

Make it executable

Copy default.conf to /etc/apache2/sites-available

Copy the public_html directory to /var/www/

Edit the public_html/index.html file to whatever you want it to say.

NOTE This is just the install for Fossil so the GitWeb button won't work.

Create a directory called fossils at /var/www/

Copy mkrepo.sh and ticket.config to /var/www/fossils

Make mkrepo.sh executable

Create a test repo: ./mkrepo.sh testrepo

The script will append .fsl onto testrepo. When the repo is created, it will display the password, remember this.

While here, backup to /var/www/ and delete the html folder put there by the install of Apache2.

This one may or may not have to be done but Apache runs in Raspian as www-data.

So at /var/ do a chown -R www-data:www-data www so everything in the www directory belongs to www-data.

Run a2dissite 000-default.conf

Run a2ensite default.conf

Run a2enmod cgi

Run systemctl restart apache2

Open a browser, type in the url and ...

Create new Fossil Repositories

To create new repostitories:

Get into the server as a normal user

cd to /var/www/fossils

Run sudo ./mkrepo.sh <insert name>

It will return the password for the repo, remember it or write it down then change it through the Admin/Users area.