Gitile (pronounced /gitil/) is a small git forge written in Guile Scheme. It can currently show public repository contents on a website. Visit this project's repository to have a look at what it can do.

How to Build Gitile

Gitile requires Guile of course, in addition to the following Guile libraries:

You will also need the usual suspects:

From this repository, run the following:


To install run:

make install

How to Run Gitile?

Before running gitile, you will need a configuration file. The configuration is a record that contains all of the following keys, as in the following example:

;; gitile.conf
  (port 8080)
  (host "localhost")
  (database "")
  (repositories "/srv/git")
  (base-git-url "")
  (index-title "My projects")
  (intro ((p "Content of the intro on index page")))
  (footer ((p "Footer content")))))

Save the file as gitile.conf (or whatever name you like) and run gitile with

./pre-inst-env scripts/gitile -c gitile.conf

It should be running on localhost:8080, but you will not get any assets.

To get assets, you need to have them served, for instance with Nginx acting as a reverse proxy for gitile, and serving the assets directly.

Repository Configuration

In order to show information such as a description, a nice name, and a short summary for each repository, you need to configure it in the repository, with git config. We use the gitweb.* configuration space for that.

For instance, you can set the following on a repository:

cd /srv/git/my-repo
git config --local gitweb.description "My repository is a wonderful project that will <b>conquer</b> the world!"
git config --local gitweb.synopsis "A repo to conquer the world"
git config --local "My Repository"