Blob


1 .\"
2 .\" Copyright (c) 2022 Stefan Sperling <stsp@openbsd.org>
3 .\"
4 .\" Permission to use, copy, modify, and distribute this software for any
5 .\" purpose with or without fee is hereby granted, provided that the above
6 .\" copyright notice and this permission notice appear in all copies.
7 .\"
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 .\"
16 .Dd $Mdocdate$
17 .Dt GOTD.CONF 5
18 .Os
19 .Sh NAME
20 .Nm gotd.conf
21 .Nd gotd configuration file
22 .Sh DESCRIPTION
23 .Nm
24 is the run-time configuration file for
25 .Xr gotd 8 .
26 .Pp
27 The file format is line-based, with one configuration directive per line.
28 Any lines beginning with a
29 .Sq #
30 are treated as comments and ignored.
31 .Sh GLOBAL CONFIGURATION
32 The available global configuration directives are as follows:
33 .Bl -tag -width Ds
34 .It Ic unix_socket Ar path
35 Set the path to the unix socket which
36 .Xr gotd 8
37 should listen on.
38 If not specified, the path
39 .Pa /var/run/gotd.sock
40 will be used.
41 .It Ic unix_group Ar group
42 Set the
43 .Ar group ,
44 defined in the
45 .Xr group 5
46 file, which is allowed to access
47 .Xr gotd 8
48 via
49 .Xr gotsh 1 .
50 The
51 .Xr gotd 8
52 user must be a secondary member of this group.
53 If not specified, the group _gotsh will be used.
54 .It Ic user Ar user
55 Set the
56 .Ar user
57 which will run
58 .Xr gotd 8 .
59 Initially,
60 .Xr gotd 8
61 requires root privileges in order to create its unix socket and start
62 child processes in a
63 .Xr chroot 2
64 environment.
65 Afterwards,
66 .Xr gotd 8
67 drops privileges to the specified
68 .Ar user .
69 If not specified, the user _gotd will be used.
70 .El
71 .Sh REPOSITORY CONFIGURATION
72 At least one repository context must exist for
73 .Xr gotd 8
74 to function.
75 .Pp
76 A repository context is declared with a unique
77 .Ar name ,
78 followed by repository-specific configuration directives inside curly braces:
79 .Pp
80 .Ic repository Ar name Brq ...
81 .Pp
82 .Xr got 1
83 and
84 .Xr git 1
85 clients can connect to a repository by including the repository's unique
86 .Ar name
87 in the request URL.
88 Clients appending the string
89 .Dq .git
90 to the
91 .Ar name
92 will also be accepted.
93 .Pp
94 If desired, the
95 .Ar name
96 may contain path-separators,
97 .Dq / ,
98 to expose repositories as part of a virtual client-visible directory hierarchy.
99 .Pp
100 The available repository configuration directives are as follows:
101 .Bl -tag -width Ds
102 .It Ic path Ar path
103 Set the path to the Git repository.
104 .EL
105 .Sh FILES
106 .Bl -tag -width Ds -compact
107 .It Pa /etc/gotd.conf
108 Location of the
109 .Nm
110 configuration file.
111 .El
112 .Sh EXAMPLES
113 .Bd -literal -offset indent
114 # Default unix_group and user values:
115 unix_group _gotsh
116 user _gotd
118 # This repository can be accessed via ssh://user@example.com/src
119 repository "src" {
120 path "/var/git/src.git"
123 # This repository can be accessed via
124 # ssh://user@example.com/openbsd/ports
125 repository "openbsd/ports" {
126 path "/var/git/ports.git"
128 .Ed
129 .Sh SEE ALSO
130 .Xr got 1 ,
131 .Xr gotsh 1 ,
132 .Xr group 5 ,
133 .Xr gotd 8