Fossil as your SCM

Fossil is an all in one system to sofware develoment projects. It was created by the same person who created sqlite.

It contains a web interface and has a built in bug tracking, wiki, forum and technotes modules.

This is my self hosting guide on FreeBSD.

— Create a repository on fossil server

root@www:/var/www/fossil-scm # fossil init -A username test.fossil

— Run fossil as standalone server

$ fossil server --localhost --port 8079 --https --repolist /var/www/fossil-scm/

I put the & so it runs as in the background but you have to restart it on server failure.

— Configure Nginx as Reverse proxy

# ... relevant part of nginx config
location / {
      proxy_pass http://127.0.0.1:8079;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
}
# ...

— Clone repository

fossil clone -v https://fossil.busilogic.com/test test.fossil