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

gotwebdGame of Trees Git Fast-CGI repository server for web browsers

gotwebd [-dnv] [-D macro=value] [-f file]

gotwebd is a Fast-CGI server program which can display the contents of Git repositories via a web browser. The program has been designed to work out of the box with the httpd(8) web server.

gotwebd provides the following options:

Do not daemonize and log to stderr.
macro=value
Override the value of a macro used in the configuration file.
file
Set the path to the configuration file. If not specified, the file /etc/gotwebd.conf will be used.
Parse the configuration file, report errors if any, and exit.
Verbose mode. Verbosity increases if this option is used multiple times.

Enabling gotwebd requires the following steps:

  1. The httpd.conf(5) configuration file must be adjusted to run gotwebd as a Fast-CGI helper program. The EXAMPLES section below contains an appropriate configuration file sample.
  2. httpd(8) must be enabled and started:
      # rcctl enable httpd
      # rcctl start httpd
  3. Optionally, the run-time behaviour of gotwebd can be configured via the gotwebd.conf(5) configuration file.
  4. Git repositories must be created at a suitable location inside the web server's chroot(2) environment. These repositories should be writable by the user ID shared between gotwebd and httpd(8). The default location for repositories published by gotwebd is /var/www/got/public.
  5. Git repositories served by gotwebd should be kept up-to-date with a mechanism such as got fetch, git-fetch(1), or rsync(1), scheduled by cron(8).

/etc/gotwebd.conf
Default location of the gotwebd.conf(5) configuration file.
/var/www/got/public/
Default location for Git repositories served by gotwebd. This location can be adjusted in the gotwebd.conf(5) configuration file.
/var/www/bin/gotwebd/
Directory containing statically linked got(1) helper programs which are run by gotwebd to read Git repositories.
/var/www/htdocs/gotwebd/
Directory containing HTML, CSS, and image files used by gotwebd.
/tmp/
Directory for temporary files created by gotwebd.

Example configuration for httpd.conf(5):

  types { include "/usr/share/misc/mime.types" }

  # one gotwebd reachable at http://gotweb1.example.com/
  server "gotweb1.example.com" {
        listen on * port 80
        root "/htdocs/gotwebd"
        location "/" {
              fastcgi socket tcp localhost 9000
        }
  }

  # hosting multiple gotwebd instances on the same HTTP server:
  # http://gotweb2.example.com/gotwebd-unix/
  # http://gotweb2.example.com/gotwebd-tcp/
  server "gotweb2.example.com" {
        listen on * port 80
        location "/gotwebd-unix/" {
              fastcgi socket "/run/gotweb.sock"
        }
        location "/gotwebd-unix/*" {
               root "/htdocs/gotwebd"
               request strip 1
        }
        location "/gotwebd-tcp/" {
              fastcgi socket tcp 127.0.0.1 9000
        }
        location "/gotwebd-tcp/*" {
               root "/htdocs/gotwebd"
               request strip 1
        }
  }

got(1), git-repository(5), gotwebd.conf(5), http.conf(5), httpd(8)

Omar Polo <op@openbsd.org>
Stefan Sperling <stsp@openbsd.org>
Tracey Emery <tracey@traceyemery.net>

September 23, 2022 OpenBSD 7.2