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

gotdGame of Trees Daemon

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

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.
config-file
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.
secrets
Set the path to the secrets file. If not specified, the file /etc/gotd-secrets.conf will be used if it exists.
Verbose mode. Verbosity increases if this option is used multiple times.

/etc/gotd.conf
Default location of the configuration file.
/var/run/gotd.sock
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
}
EOF
# 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) gotd-secrets.conf(5)

Stefan Sperling <stsp@openbsd.org>

At present, gotd cannot serve repositories that use the sha256 object ID hashing algorithm because gotd does not yet support version 2 of the Git network protocol.

November 21, 2024 OpenBSD 7.6