Gemigit
Gemigit is a gemini-based minimalist software forge written in Go for hosting Git repositories.
Features
The main purpose of Gemigit is to allow users to create and manage their git repositories, below is an example of the account page of a connected user.
Repositories are private by default, they can only be seen by their owner and those that has been granted read access to it. It is also possible to make the repository public so that it can be seen by everyone. Gemigit has a page to list public repositories as seen in the picture below.
Users can manage their repositories access, giving read or write access to specific users or groups of their liking.
Users can create groups to make managing privileges easier. Instead of adding the same users to multiple repositories, a repository owner can create a group of users and add it to multiple repositories.
Gemigit can be tuned using the configuration file, many options are available like serving git repositories on the http protocol, using LDAP for users authentication, choosing between SQLite and MySQL for the database, Gemigit can also be configured to be in stateless mode to do load balancing using multiple instances.
Getting started
- First clone the repository using the command : "git clone https://gmi.rmf-dev.com/Vaati/Gemigit". For a more stable experience, you can switch to the LTS version by entering the command "git checkout lts-1.0".
- Build the program using the command "go build".
- Copy config.yaml into either /etc/gemigit, /usr/local/etc/gemigit or the working directory where Gemigit will be executed.
- Edit the config file to suit your needs.
- Execute gemigit.
The source code can be viewed online.
The repository can also be cloned with the following command:
git clone https://github.com/RealMelkor/Gemigit.git