The first time you run GitRoot, it will create a root repository. This repository, called root by default, is where forge configuration live.
This is a repository like any other, you can add files with git. In a mono-repo instance like gitroot.dev, you can manage the instance from this single repo.
However, it contains more internal files than standard repositories.
Another slight difference is how you can access the repositories. The root repository is accessible through ssh://yourdomain.tld/ or ssh://yourdomain.tld/root/. A non-root repository is accessible only via ssh://yourdomain.tld/repo1/. The same rules apply for web access.
This file is where your main config live:
1################################################################################
2# /!\ A restart of GitRoot is need before change in this file take effect. /!\ #
3################################################################################
4
5sshaddr: 0.0.0.0:4545 # The ssh address to listen to with ip:port form
6httpaddr: 0.0.0.0:4546 # The http address to listen to with ip:port form
7domainname: localhost
8externalsshaddr: ssh://localhost:4545/
9externalhttpaddr: http://localhost:4546/
10rootcommitername: GitRoot
11rootrepositoryname: root
12defaultbranch: main
13nbworkerinbackground: 3
14execconf:
15 baremetal:
16 enabled: false
17 bwrap:
18 enabled: true
19 user: nobody
20 uid: 65534
21 group: nogroup
22 gid: 65534
23 robind: []
24 bind: []
25 container:
26 enabled: false
27 bin: podman
28 ssh:
29 enabled: false
30 hosts:
31 - user: myUSer
32 address: 127.0.0.1
33 port: 22
34 publickey: ssh-ed25519 AAAAC3NzaC1...
This file contains all repositories of your forge. With the root repository itself.
1root:
2 kind: normal
3 defaultbranch: main
4 owners: []
5 forkurl: ""
More about this file in repositories file documentation.