GOTSYSD.CONF(5)

NAME
gotsysd.conf - gotsysd configuration file

DESCRIPTION
gotsysd.conf is the run-time configuration file for gotsysd(8).

The file format is line-based, with one configuration directive per line. Comments can be put anywhere in the file using a hash mark (‘#’), and extend to the end of the current line. Arguments names not beginning with a letter, digit or underscore, as well as reserved words (such as listen, repository or user), must be quoted. Arguments containing whitespace should be surrounded by double quotes (").

Macros can be defined that are later expanded in context. Macro names must start with a letter, digit, or underscore, and may contain any of those characters, but may not be reserved words. Macros are not expanded inside quotes. For example:

    path = "/var/run/gotsysd.sock"
    listen on $path

GLOBAL CONFIGURATION
The available global configuration directives are as follows:

gotd user user
    The name of the gotd(8) user account. Defauls to “_gotd”. gotsysd(8) will switch to this user account as needed.

listen on path
    Set the path to the unix socket which gotsysd(8) should listen on. If not specified, the path /var/run/gotsysd.sock will be used.

permit identity
    Permit gotsysd(8) unix socket access to users with the username identity. Group names may be matched by prepending a colon (‘’): to identity. Numeric IDs are also accepted.

    Multiple permit rules can be specified.

    If no permit rule is specified, the users root and _gotd are granted access by default.

repository directory path
    Set the path to the repository directory within which Git repositories will be created and managed by gotsysd(8). This repository directory must be owned by and be exclusively accessible to the gotd(8) user.

    If not specified, the path /git will be used.

repository deny identity
    Deny repository access to users with the username identity.

    Access rules set in gotsysd.conf apply to all repositories and override conflicting per-repository access rules specified in gotsys.conf(5).

    Group names may be matched by prepending a colon (‘’): to identity.

    The special user identity “*” (an asterisk) can be used to match all users, including the “anonymous” user.

    Multiple access rules can be specified, and the last matching rule determines the action taken. If no rule matches, the per-repository rules specified in gotsys.conf(5) will take effect.

repository permit mode identity
    Permit repository access to users with the username identity.

    Access rules set in gotsysd.conf apply to all repositories and override conflicting per-repository access rules specified in gotsys.conf(5).

    The mode argument must be set to either ro for read-only access, or rw for read-write access. Group names may be matched by prepending a colon (‘’): to identity.

    The special user identity “anonymous” can be used when public read-only access to repositories over SSH is desired. The anonymous user has an empty password, cannot use an SSH public key, and can only be granted read-only access.

    The special user identity “*” (an asterisk) can be used to match all users, except the “anonymous” user. Read-only anonymous access must be enabled explicitly.

    Multiple access rules can be specified, and the last matching rule determines the action taken. If no rule matches, the per-repository rules specified in gotsys.conf(5) will take effect.

uid range start end
    Set the start and end (inclusive) of the range from which gotsysd(8) will allocate user and group IDs when creating user accounts specified in gotsys.conf(5). The start of this range must be greater than 1000 and must be smaller than the end.

    The default range is 5000 to 5999.

user user
    Set the user which will run gotsysd(8). Initially, gotsysd(8) requires root privileges. Afterwards, gotsysd(8) partly drops privileges to its own user and to the gotd(8) user. If not specified, the user _gotsysd will be used. Numeric user IDs are also accepted.

EXAMPLES
The following example shows default settings:

    user _gotsysd
    gotd user _gotd
    listen on "/var/run/gotsysd.sock"
    repository directory "/git"
    uid range 5000 5999

Regardless of what gotsys.conf(5) says, allow the user account “backup-user” to read any repository:

    repository permit ro backup-user

Regardless of what gotsys.conf(5) says, make all repositories read-only:

    repository permit ro "*"

Regardless of what gotsys.conf(5) says, make all repositories inaccessible:

    repository deny "*"

SEE ALSO
got(1), gotd(8), gotsysd(8)