GitRoot

craft your forge, build your project, grow your community freely

GitRoot

GitRoot is a tiny yet powerfull git forge. Download one binary, launch it and you have a forge. Install plugins and only your imagination is the limit.

Getting Started

These instructions will give you a copy of the project up and running on your local machine for development and testing purposes. See gitroot.dev to understand the project itself and the documentation to discover how to use it.

Prerequisites

All this tools need to be available in your path:

Installing

Clone the code git clone ssh://gitroot.dev/ and init your git client for this repository .gitroot/init.sh.

Don’t want to run unknown sh? See manually init client.

Don’t forget to make a branch before coding git checkout -b myWork. As GitRoot allow anybody to push a branch (if no one as already do == a branch name need to be unique) you don’t need to register or to fork something. Branch, code, commit and push, is what you need to do.

More on the users and branches workflow in GitRoot.

Build

To build GitRoot use make build and it will generate a gitroot binary in the root of the project.

Launch it with ./gitroot -data="./data", your forge is accessible on git clone ssh://127.0.0.1:4545/ or by opening http://127.0.0.1:4546/.

For more details on usage, please read the doc.

Running the tests

GitRoot has differents kind of tests:

To run all in one command: make testall

Deployment

See the documentation to deploy an instance.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting code to us.

Versioning

We use Semantic Versioning for versioning. For the versions available, see the changelog.

Authors

As in any GitRoot repository, find contributors in .gitroot/users.yml.

Release

To release a version of GitRoot:

License

This project is licensed under multiple licences. GitRoot follow spdx convention, so you can find all licences in licences directory. Each file contain it’s own licence, but here is a brief summary as of May 2025:

So you can develop a plugin in any licence you want. To encourage that, libs to help you build a plugin are MIT. All the code EUPL will stay EUPL and any modification should be republied. See more on rationals about EUPL.

For more accurate information, check the REUSE.toml and/or individual files.