GOTD(8) System Manager's Manual GOTD(8)

gotdGame of Trees Daemon

gotd [-dnv] [-f config-file]

gotd is a Git repository server which listens on a unix(4) socket and relies on its companion tool gotsh(1) to handle Git-protocol communication over the network, via ssh(1).

The Git repository format is described in git-repository(5).

gotd requires a configuration file in order to run. The configuration file format is described in gotd.conf(5).

It is recommended to restrict ssh(1) features available to users of gotd. See gotsh(1) for details.

The options for gotd are as follows:

Do not daemonize. Send log output to stderr.
Set the path to the configuration file. If not specified, the file /etc/gotd.conf will be used.
Configtest mode. Only check the configuration file for validity.
Verbose mode. Verbosity increases if this option is used multiple times.

Default location of the configuration file.
Default location of the unix socket which gotd is listening on. This path can be configured in gotd.conf(5).

Create an empty repository to be served by gotd, ensuring that it can only be accessed by the _gotd user:

# mkdir -p /git/myrepo.git
# chmod 700 /git/myrepo.git
# chown _gotd /git/myrepo.git
# su -m _gotd -c 'gotadmin init /git/myrepo.git'

Add the new repository to gotd.conf(5) granting read-write access to the flan_hacker user account, and restart gotd:

# cat >> /etc/gotd.conf <<EOF
repository 'myrepo' {
path '/git/myrepo.git'
permit rw flan_hacker
# rcctl restart gotd

The flan_hacker user can now populate the empty repository with got send.

got(1), gotsh(1), git-repository(5), gotd.conf(5)

Stefan Sperling <>

June 3, 2024 OpenBSD 7.5