Fossil
Fossil is a simple, high-reliability, distributed SCM system with a built-in web interface, including a wiki, a ticket system, a forum and more.
Prerequisites
Your Fossil web URL needs to be setup:
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
Installation
Fossil is distributed as a single binary, which in this case is the server and the client component. Download Fossil’s latest release and extract it.
[isabell@stardust ~]$ mkdir ~/fossil
[isabell@stardust ~]$ wget https://fossil-scm.org/home/uv/fossil-linux-x64-2.24.tar.gz
[...]
[isabell@stardust ~]$ tar -xzf fossil-linux-x64-2.24.tar.gz -C ~/fossil/
[isabell@stardust ~]$ rm fossil-linux-x64-2.24.tar.gz
[isabell@stardust ~]$
Configuration
Create a repository root
Each Fossil repository is a self-contained SQLite database. The Fossil server needs to know where your repositories are. In this example, we use ~/repos
:
[isabell@stardust ~]$ mkdir ~/repos
[isabell@stardust ~]$
Configure web server
To make the application accessible from the outside, configure a web backend:
[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$
Note
Fossil will be running on port 8008. You can choose any other valid port in the next step.
Setup daemon
To start the Fossil server automatically and run it in the background, create ~/etc/services.d/fossil.ini
with the following content:
[program:fossil]
command=%(ENV_HOME)s/fossil/fossil server %(ENV_HOME)s/repos --repolist --port 0.0.0.0:8008 --remove-prefix
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
Setup a test repository (optional)
To see if everything is working, you can create a test repository here:
[isabell@stardust ~]$ cd ~/repos
[isabell@stardust ~]$ ../fossil/fossil init test.fossil
[isabell@stardust ~]$
Finishing installation
Point your browser to the URL you set up, e. g. https://isabell.uber.space
. If you created the test repository in the previous step, you should already see it.
Updates
Note
Fossil must be updated manually.
Tested with Fossil 2.24 on Uberspace 7.16.0
Written by: tux0r <https://tuxproject.de>