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.
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.
All this tools need to be available in your path:
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.
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.
GitRoot has differents kind of tests:
make test
/tmp
, execute them with make testsuite
To run all in one command: make testall
See the documentation to deploy an instance.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting code to us.
We use Semantic Versioning for versioning. For the versions available, see the changelog.
As in any GitRoot repository, find contributors in .gitroot/users.yml.
To release a version of GitRoot:
mkdir issues/close/v0.1.0
issues/close
to issues/close/v0.1.0
with find issues/close/. -maxdepth 1 \( ! -type d \) -exec sh -c 'mv "$@" issues/close/v0.1.0' _ {} \;
git add . && git commit -m ":bookmark: v0.1.0"
git tag -a v0.1.0 -m "Version 0.1.0"
make build
./gitroot --version
git add . && git commit -m ":sparkles: start next"
scp gitroot-0.1.0 gitroot.dev
and update last ssh gitroot.dev "rm -f gitroot-last && cp gitroot-0.1.0 gitroot-last"
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.