gitile

Simple Git forge written in Guile

git clone https://repo.pisemsky.site/git/gitile

Move index-page to pages

Evgeny PisemskyFri Sep 06 10:40:10+0300 2024

40eb7db

gitile
namelast commitdate
.gitignoreLicense with reuse.software, code is under AGPL, not LGPLSun Mar 21 20:00:42+0300 2021
LICENSES/License with reuse.software, code is under AGPL, not LGPLSun Mar 21 20:00:42+0300 2021
Makefile.amUpdate syntax-highlight to latest versionWed Aug 25 00:16:23+0300 2021
README.mdUpdate readme, fix css fontsFri Aug 30 09:20:51+0300 2024
assets/Fix css fonts properlyMon Sep 02 09:45:00+0300 2024
bootstrapLicense with reuse.software, code is under AGPL, not LGPLSun Mar 21 20:00:42+0300 2021
configure.acLicense with reuse.software, code is under AGPL, not LGPLSun Mar 21 20:00:42+0300 2021
gitile/Move index-page to pagesFri Sep 06 10:40:10+0300 2024
guile.amLicense with reuse.software, code is under AGPL, not LGPLSun Mar 21 20:00:42+0300 2021
guix.scmSimplify guix recipeWed Aug 21 09:45:36+0300 2024
pre-inst-env.inLicense with reuse.software, code is under AGPL, not LGPLSun Mar 21 20:00:42+0300 2021
scripts/Make config file requiredTue Sep 03 11:55:45+0300 2024

README.md

Gitile

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:

./bootstrap
./configure
make

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
(config
  (port 8080)
  (host "localhost")
  (database ((asset-directory . #f)
             (avatar-url-template . "https://avatar.lepiller.eu/cat-avatar-generator.php?seed=$hash")
             (avatar-hash-algorithm . sha1)))
  (repositories "/srv/git")
  (base-git-url "https://git.example.org/git")
  (index-title "My projects")
  (intro ((p "Content of the intro on index page")))
  (footer ((p "Footer content")))))

Database can be set to an alist of the following keys and values:

The config example above represents the default values for these keys.

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.

If you don't get any assets, configure asset-directory as described above, but note that this is only suitable for local development. For production you need to have them served directly, for instance with Nginx acting as a reverse proxy for gitile.

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 gitweb.name "My Repository"