GOTD(8)

NAME
gotd - Game of Trees Daemon

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

DESCRIPTION
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:

-d  Do not daemonize. Send log output to stderr.

-f config-file
    Set the path to the configuration file. If not specified, the file /usr/pkg/etc/gotd.conf will be used.

-n  Configtest mode. Only check the configuration file for validity.

-s secrets
    Set the path to the secrets file. If not specified, the file /etc/gotd-secrets.conf will be used if it exists.

-v  Verbose mode. Verbosity increases if this option is used multiple times.

FILES
/usr/pkg/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).

EXAMPLES
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 >> /usr/pkg/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.

SEE ALSO
got(1), gotsh(1), git-repository(5), gotd.conf(5) gotd-secrets.conf(5), gotctl(8)

AUTHORS
Stefan Sperling <stsp@openbsd.org>

CAVEATS
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.

gotd cannot honour the SIGHUP signal because the /etc/gotd-secrets.conf file is only readable by root, and gotd runs entirely without root privileges after initial startup. The configuration of a running gotd instance can be reloaded by running gotctl reload as root.