Blame


1 8a35f56c 2022-07-16 thomas .\"
2 8a35f56c 2022-07-16 thomas .\" Copyright (c) 2020 Tracey Emery <tracey@traceyemery.net>
3 8a35f56c 2022-07-16 thomas .\"
4 8a35f56c 2022-07-16 thomas .\" Permission to use, copy, modify, and distribute this software for any
5 8a35f56c 2022-07-16 thomas .\" purpose with or without fee is hereby granted, provided that the above
6 8a35f56c 2022-07-16 thomas .\" copyright notice and this permission notice appear in all copies.
7 8a35f56c 2022-07-16 thomas .\"
8 8a35f56c 2022-07-16 thomas .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 8a35f56c 2022-07-16 thomas .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 8a35f56c 2022-07-16 thomas .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 8a35f56c 2022-07-16 thomas .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 8a35f56c 2022-07-16 thomas .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 8a35f56c 2022-07-16 thomas .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 8a35f56c 2022-07-16 thomas .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 8a35f56c 2022-07-16 thomas .\"
16 8a35f56c 2022-07-16 thomas .Dd $Mdocdate$
17 55331ef5 2022-08-30 thomas .Dt GOTWEBD.CONF 5
18 8a35f56c 2022-07-16 thomas .Os
19 8a35f56c 2022-07-16 thomas .Sh NAME
20 55331ef5 2022-08-30 thomas .Nm gotwebd.conf
21 55331ef5 2022-08-30 thomas .Nd gotwebd configuration file
22 8a35f56c 2022-07-16 thomas .Sh DESCRIPTION
23 8a35f56c 2022-07-16 thomas .Nm
24 8a35f56c 2022-07-16 thomas is the run-time configuration file for
25 55331ef5 2022-08-30 thomas .Xr gotwebd 8 .
26 8a35f56c 2022-07-16 thomas .Pp
27 8a35f56c 2022-07-16 thomas The file format is line-based, with one configuration directive per line.
28 8a35f56c 2022-07-16 thomas Any lines beginning with a
29 8a35f56c 2022-07-16 thomas .Sq #
30 8a35f56c 2022-07-16 thomas are treated as comments and ignored.
31 8a35f56c 2022-07-16 thomas .Pp
32 8a35f56c 2022-07-16 thomas Paths mentioned in
33 8a35f56c 2022-07-16 thomas .Nm
34 8a35f56c 2022-07-16 thomas must be relative to
35 8a35f56c 2022-07-16 thomas .Pa /var/www ,
36 8a35f56c 2022-07-16 thomas the
37 8a35f56c 2022-07-16 thomas .Xr chroot 2
38 8a35f56c 2022-07-16 thomas environment of
39 8a35f56c 2022-07-16 thomas .Xr httpd 8 .
40 8a35f56c 2022-07-16 thomas .Sh GLOBAL CONFIGURATION
41 cf5878ee 2022-08-30 thomas The available global configuration directives are as follows:
42 8a35f56c 2022-07-16 thomas .Bl -tag -width Ds
43 55331ef5 2022-08-30 thomas .It Ic chroot Ar path
44 55331ef5 2022-08-30 thomas Set the path to the
45 55331ef5 2022-08-30 thomas .Xr chroot 2
46 55331ef5 2022-08-30 thomas environment of
47 55331ef5 2022-08-30 thomas .Xr httpd 8 .
48 55331ef5 2022-08-30 thomas If not specified then
49 55331ef5 2022-08-30 thomas .Pa /var/www
50 55331ef5 2022-08-30 thomas will be used.
51 cf5878ee 2022-08-30 thomas .It Ic prefork Ar number
52 cf5878ee 2022-08-30 thomas Run the specified number of server processes.
53 cf5878ee 2022-08-30 thomas .It Ic unix_socket Ar on | off
54 cf5878ee 2022-08-30 thomas Controls whether the servers will listen on unix sockets by default.
55 cf5878ee 2022-08-30 thomas .It Ic unix_socket_name Ar path
56 cf5878ee 2022-08-30 thomas Set the path to the default unix socket.
57 cf5878ee 2022-08-30 thomas .El
58 cf5878ee 2022-08-30 thomas .Sh SERVER CONFIGURATION
59 cf5878ee 2022-08-30 thomas At least one server context must exist for
60 cf5878ee 2022-08-30 thomas .Xr gotwebd 8
61 cf5878ee 2022-08-30 thomas to function.
62 cf5878ee 2022-08-30 thomas In case no server context is defined in the configuration file, a default
63 cf5878ee 2022-08-30 thomas server context will be used, which listens on a unix socket at
64 cf5878ee 2022-08-30 thomas .Pa /var/www/run/gotweb.sock
65 cf5878ee 2022-08-30 thomas and uses default parameters for all applicable settings.
66 cf5878ee 2022-08-30 thomas .Pp
67 cf5878ee 2022-08-30 thomas A server context is declared with a unique
68 a568bf72 2022-08-30 thomas .Ar name ,
69 cf5878ee 2022-08-30 thomas followed by server-specific configuration directives inside curly braces:
70 cf5878ee 2022-08-30 thomas .Pp
71 cf5878ee 2022-08-30 thomas .Ic server Ar name Brq ...
72 cf5878ee 2022-08-30 thomas .Pp
73 211ff89e 2022-08-30 thomas .Xr gotwebd 8
74 211ff89e 2022-08-30 thomas is compatible with TLS Server Name Indication (SNI), provided the
75 211ff89e 2022-08-30 thomas .Ar name
76 211ff89e 2022-08-30 thomas of a server defined in
77 211ff89e 2022-08-30 thomas .Nm
78 211ff89e 2022-08-30 thomas corresponds to the name of a server defined in
79 211ff89e 2022-08-30 thomas .Xr httpd.conf 5 .
80 211ff89e 2022-08-30 thomas .Pp
81 cf5878ee 2022-08-30 thomas The available server configuration directives are as follows:
82 cf5878ee 2022-08-30 thomas .Bl -tag -width Ds
83 55331ef5 2022-08-30 thomas .It Ic custom_css Ar path
84 55331ef5 2022-08-30 thomas Set the path to a custom Cascading Style Sheet (CSS) to be used.
85 cf5878ee 2022-08-30 thomas If this option is not specified then a default style sheet will be used.
86 55331ef5 2022-08-30 thomas .It Ic listen on Ar address Ic port Ar number
87 cf5878ee 2022-08-30 thomas Configure an address and port for incoming FCGI TCP connections.
88 cf5878ee 2022-08-30 thomas Valid
89 cf5878ee 2022-08-30 thomas .Ar address
90 cf5878ee 2022-08-30 thomas arguments are hostnames, IP4 addresses, IPv6 addresses, and network
91 cf5878ee 2022-08-30 thomas interface names.
92 cf5878ee 2022-08-30 thomas The
93 cf5878ee 2022-08-30 thomas .Ar port
94 cf5878ee 2022-08-30 thomas argument may be number or a service name defined in
95 cf5878ee 2022-08-30 thomas .Xr services 5 .
96 cf5878ee 2022-08-30 thomas .Pp
97 cf5878ee 2022-08-30 thomas May be specified multiple times to build up a list of listening sockets.
98 cf5878ee 2022-08-30 thomas However, a given combination of address and port may only be used by
99 cf5878ee 2022-08-30 thomas one server.
100 a8bfd781 2022-09-23 thomas .Pp
101 a8bfd781 2022-09-23 thomas If a network interface name is given as
102 a8bfd781 2022-09-23 thomas .Ar address
103 a8bfd781 2022-09-23 thomas argument then
104 a8bfd781 2022-09-23 thomas .Xr gotwebd 8
105 a8bfd781 2022-09-23 thomas will obtain the list of addresses on this interface only on startup.
106 a8bfd781 2022-09-23 thomas Any future changes to the address configuration of the interface will
107 a8bfd781 2022-09-23 thomas be ignored.
108 55331ef5 2022-08-30 thomas .It Ic logo Ar path
109 8a35f56c 2022-07-16 thomas Set the path to an image file containing a logo to be displayed.
110 55331ef5 2022-08-30 thomas .It Ic logo_url Ar url
111 8a35f56c 2022-07-16 thomas Set a hyperlink for the logo.
112 55331ef5 2022-08-30 thomas .It Ic max_commits_display Ar number
113 55331ef5 2022-08-30 thomas Set the maximum amount of commits displayed per page.
114 55331ef5 2022-08-30 thomas .It Ic max_repos Ar number
115 8a35f56c 2022-07-16 thomas Set the maximum amount of repositories
116 55331ef5 2022-08-30 thomas .Xr gotwebd 8
117 8a35f56c 2022-07-16 thomas will work with.
118 55331ef5 2022-08-30 thomas .It Ic max_repos_display Ar number
119 8a35f56c 2022-07-16 thomas Set the maximum amount of repositories displayed on the index screen.
120 55331ef5 2022-08-30 thomas .It Ic repos_path Ar path
121 55331ef5 2022-08-30 thomas Set the path to the directory which contains Git repositories that
122 cf5878ee 2022-08-30 thomas the server should publish.
123 55331ef5 2022-08-30 thomas .It Ic show_repo_age Ar on | off
124 8a35f56c 2022-07-16 thomas Toggle display of last repository modification date.
125 55331ef5 2022-08-30 thomas .It Ic show_repo_cloneurl Ar on | off
126 8a35f56c 2022-07-16 thomas Toggle display of clone URLs for a repository.
127 8a35f56c 2022-07-16 thomas This requires the creation of a
128 8a35f56c 2022-07-16 thomas .Pa cloneurl
129 8a35f56c 2022-07-16 thomas file inside the repository which contains one URL per line.
130 55331ef5 2022-08-30 thomas .It Ic show_repo_description Ar on | off
131 8a35f56c 2022-07-16 thomas Toggle display of the repository description.
132 8a35f56c 2022-07-16 thomas The
133 8a35f56c 2022-07-16 thomas .Pa description
134 8a35f56c 2022-07-16 thomas file in the repository should be updated with an appropriate description.
135 55331ef5 2022-08-30 thomas .It Ic show_repo_owner Ar on | off
136 8a35f56c 2022-07-16 thomas Set whether to display the repository owner.
137 8a35f56c 2022-07-16 thomas Displaying the owner requires owner information to be added to the
138 8a35f56c 2022-07-16 thomas .Pa config
139 8a35f56c 2022-07-16 thomas file in the repository.
140 55331ef5 2022-08-30 thomas .Xr gotwebd 8
141 8a35f56c 2022-07-16 thomas will parse owner information from either a [gotweb] or a [gitweb] section.
142 8a35f56c 2022-07-16 thomas For example:
143 8a35f56c 2022-07-16 thomas .Bd -literal -offset indent
144 8a35f56c 2022-07-16 thomas [gotweb]
145 8a35f56c 2022-07-16 thomas owner = "Your Name"
146 8a35f56c 2022-07-16 thomas .Ed
147 55331ef5 2022-08-30 thomas .It Ic site_link Ar string
148 8a35f56c 2022-07-16 thomas Set the displayed site link name for the index page.
149 55331ef5 2022-08-30 thomas .It Ic site_name Ar string
150 8a35f56c 2022-07-16 thomas Set the displayed site name title.
151 55331ef5 2022-08-30 thomas .It Ic site_owner Ar string
152 8a35f56c 2022-07-16 thomas Set the displayed site owner.
153 55331ef5 2022-08-30 thomas .It Ic show_site_owner Ar on | off
154 8a35f56c 2022-07-16 thomas Toggle display of the site owner.
155 55331ef5 2022-08-30 thomas .It Ic unix_socket Ar on | off
156 cf5878ee 2022-08-30 thomas Enable or disable use of unix sockets.
157 55331ef5 2022-08-30 thomas .It Ic unix_socket_name Ar path
158 cf5878ee 2022-08-30 thomas Set the path to the unix socket used by the server.
159 cf5878ee 2022-08-30 thomas .El
160 8a35f56c 2022-07-16 thomas .Sh EXAMPLES
161 8a35f56c 2022-07-16 thomas These are the currently configurable items for
162 55331ef5 2022-08-30 thomas .Xr gotwebd 8
163 8a35f56c 2022-07-16 thomas with their default values.
164 8a35f56c 2022-07-16 thomas .Bd -literal -offset indent
165 8a35f56c 2022-07-16 thomas #
166 55331ef5 2022-08-30 thomas # gotwebd options
167 8a35f56c 2022-07-16 thomas # all paths relative to /var/www (httpd chroot jail)
168 8a35f56c 2022-07-16 thomas #
169 8a35f56c 2022-07-16 thomas
170 55331ef5 2022-08-30 thomas prefork 1
171 55331ef5 2022-08-30 thomas
172 55331ef5 2022-08-30 thomas server "localhost-unix" {
173 55331ef5 2022-08-30 thomas repos_path "/got/public"
174 55331ef5 2022-08-30 thomas unix_socket_name "/run/gotweb.sock"
175 cf5878ee 2022-08-30 thomas
176 cf5878ee 2022-08-30 thomas got_site_name "my public repos"
177 cf5878ee 2022-08-30 thomas got_site_owner "Got Owner"
178 cf5878ee 2022-08-30 thomas got_site_link "repos"
179 cf5878ee 2022-08-30 thomas
180 cf5878ee 2022-08-30 thomas logo "got.png"
181 cf5878ee 2022-08-30 thomas logo_url "https://gameoftrees.org"
182 cf5878ee 2022-08-30 thomas
183 cf5878ee 2022-08-30 thomas # on by default
184 cf5878ee 2022-08-30 thomas #show_site_owner off
185 cf5878ee 2022-08-30 thomas #show_repo_owner off
186 cf5878ee 2022-08-30 thomas #show_repo_age false
187 cf5878ee 2022-08-30 thomas #show_repo_description no
188 cf5878ee 2022-08-30 thomas #show_repo_cloneurl off
189 cf5878ee 2022-08-30 thomas
190 cf5878ee 2022-08-30 thomas #max_repos 100
191 cf5878ee 2022-08-30 thomas #max_repos_display 25
192 cf5878ee 2022-08-30 thomas #max_commits_display 50
193 55331ef5 2022-08-30 thomas }
194 55331ef5 2022-08-30 thomas
195 55331ef5 2022-08-30 thomas # Example server context for FCGI over TCP connections:
196 55331ef5 2022-08-30 thomas #server "localhost-tcp" {
197 55331ef5 2022-08-30 thomas # repos_path "/got/public"
198 55331ef5 2022-08-30 thomas # unix_socket off
199 55331ef5 2022-08-30 thomas # listen on 127.0.0.1 port 9000
200 55331ef5 2022-08-30 thomas # listen on ::1 port 9000
201 55331ef5 2022-08-30 thomas #}
202 8a35f56c 2022-07-16 thomas .Ed
203 8a35f56c 2022-07-16 thomas .Sh FILES
204 8a35f56c 2022-07-16 thomas .Bl -tag -width Ds -compact
205 380f0955 2022-09-07 thomas .It Pa /etc/gotwebd.conf
206 380f0955 2022-09-07 thomas Default location of the
207 8a35f56c 2022-07-16 thomas .Nm
208 8a35f56c 2022-07-16 thomas configuration file.
209 8a35f56c 2022-07-16 thomas .El
210 8a35f56c 2022-07-16 thomas .Sh SEE ALSO
211 8a35f56c 2022-07-16 thomas .Xr got 1 ,
212 0176d7a5 2022-08-30 thomas .Xr httpd.conf 5 ,
213 cf5878ee 2022-08-30 thomas .Xr services 5 ,
214 0176d7a5 2022-08-30 thomas .Xr gotwebd 8 ,
215 0176d7a5 2022-08-30 thomas .Xr httpd 8