Commit Diff


commit - 8b679b4bf15b84e71c5d2f610692ea08e197d87c
commit + b2c82ae21b340f042c71c9174e9c7093a5bbcbe3
blob - /dev/null
blob + d14ad9cb4effa9916d43ab163beb43c0e35a65fa (mode 644)
--- /dev/null
+++ gotweb.8.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+<!-- This is an automatically generated file.  Do not edit.
+   Copyright (c) 2020 Stefan Sperling
+  
+   Permission to use, copy, modify, and distribute this software for any
+   purpose with or without fee is hereby granted, provided that the above
+   copyright notice and this permission notice appear in all copies.
+  
+   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+   -->
+<head>
+  <meta charset="utf-8"/>
+  <style>
+    table.head, table.foot { width: 100%; }
+    td.head-rtitle, td.foot-os { text-align: right; }
+    td.head-vol { text-align: center; }
+    .Nd, .Bf, .Op { display: inline; }
+    .Pa, .Ad { font-style: italic; }
+    .Ms { font-weight: bold; }
+    .Bl-diag > dt { font-weight: bold; }
+    code.Nm, .Fl, .Cm, .Ic, code.In, .Fd, .Fn, .Cd { font-weight: bold;
+      font-family: inherit; }
+  </style>
+  <title>GOTWEB(8)</title>
+</head>
+<body>
+<table class="head">
+  <tr>
+    <td class="head-ltitle">GOTWEB(8)</td>
+    <td class="head-vol">System Manager's Manual</td>
+    <td class="head-rtitle">GOTWEB(8)</td>
+  </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">gotweb</code> &#x2014; <span class="Nd">Game of
+    Trees Git repository server for web browsers</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<table class="Nm">
+  <tr>
+    <td><code class="Nm">gotweb</code></td>
+    <td></td>
+  </tr>
+</table>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp"><code class="Nm">gotweb</code> provides a web interface allowing
+    Git repository contents to be viewed with a web browser.</p>
+<p class="Pp"><code class="Nm">gotweb</code> is a CGI program based on
+    <a class="Xr">got(1)</a> and <a class="Xr">kcgi(3)</a> which is intended to
+    run in a <a class="Xr">chroot(2)</a> environment in
+    <span class="Pa">/var/www</span>. The program has been designed to work out
+    of the box with the <a class="Xr">httpd(8)</a> web server in conjunction
+    with <a class="Xr">slowcgi(8)</a>.</p>
+<p class="Pp">Enabling <code class="Nm">gotweb</code> requires the following
+    steps:</p>
+<ol class="Bl-enum">
+  <li>The <a class="Xr">httpd.conf(5)</a> configuration file must be adjusted to
+      run <code class="Nm">gotweb</code> as a CGI program with
+      <a class="Xr">slowcgi(8)</a>. The
+      <a class="Sx" href="#EXAMPLES">EXAMPLES</a> section below contains an
+      appropriate configuration file sample.</li>
+  <li>httpd(8) and slowcgi(8) must be enabled and started:
+    <div class="Bd Pp Bd-indent">
+    <pre>
+  # rcctl enable httpd slowcgi
+  # rcctl start httpd slowcgi
+    </pre>
+    </div>
+  </li>
+  <li>Optionally, the run-time behaviour of <code class="Nm">gotweb</code> can
+      be configured via the <a class="Xr">gotweb.conf(5)</a> configuration
+    file.</li>
+  <li>Git repositories must be created at a suitable location inside the web
+      server's <a class="Xr">chroot(2)</a> environment. These repositories
+      should <i class="Em">not</i> be writable by the user ID of the
+      <a class="Xr">httpd(8)</a> server. The default location for repositories
+      published by <code class="Nm">gotweb</code> is
+      <span class="Pa">/var/www/got/public</span>.</li>
+  <li>Git repositories served by <code class="Nm">gotweb</code> should be kept
+      up-to-date with a mechanism such as <a class="Xr">git-fetch(1)</a> or
+      <a class="Xr">rsync(1)</a>, scheduled by <a class="Xr">cron(8)</a>.</li>
+</ol>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
+<dl class="Bl-tag Bl-compact">
+  <dt><span class="Pa">/var/www/got/public/</span></dt>
+  <dd>Default location for Git repositories served by
+      <code class="Nm">gotweb</code>. This location can be adjusted in the
+      <a class="Xr">gotweb.conf(5)</a> configuration file.</dd>
+  <dt><span class="Pa">/var/www/cgi-bin/gotweb/gotweb</span></dt>
+  <dd>The <code class="Nm">gotweb</code> CGI program, statically linked for use
+      in a <a class="Xr">chroot(2)</a> environment.</dd>
+  <dt><span class="Pa">/var/www/cgi-bin/gotweb/gw_tmpl/</span></dt>
+  <dd>Directory for template files used by <code class="Nm">gotweb</code>.</dd>
+  <dt><span class="Pa">/var/www/cgi-bin/gotweb/libexec/</span></dt>
+  <dd>Directory containing statically linked <a class="Xr">got(1)</a> helper
+      programs which are run by <code class="Nm">gotweb</code> to read Git
+      repositories.</dd>
+  <dt><span class="Pa">/var/www/htdocs/gotweb/</span></dt>
+  <dd>Directory containing HTML, CSS, and image files used by
+      <code class="Nm">gotweb</code>.</dd>
+  <dt><span class="Pa">/var/www/got/tmp/</span></dt>
+  <dd>Directory for temporary files created by
+    <code class="Nm">gotweb</code>.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<p class="Pp">Example configuration for httpd.conf:</p>
+<div class="Bd Pp Bd-indent">
+<pre>
+
+  types { include &quot;/usr/share/misc/mime.types&quot; }
+  server &quot;gotweb.example.com&quot; {
+  	listen on * port 80
+  	root &quot;/htdocs/gotweb&quot;
+  	location &quot;/cgi-bin/*&quot; {
+  		root &quot;/&quot;
+  		fastcgi
+  	}
+  	location &quot;/*&quot; {
+  		directory index &quot;index.html&quot;
+  	}
+  }
+</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+  ALSO</a></h1>
+<p class="Pp"><a class="Xr">got(1)</a>, <a class="Xr">kcgi(3)</a>,
+    <a class="Xr">git-repository(5)</a>, <a class="Xr">gotweb.conf(5)</a>,
+    <a class="Xr">httpd(8)</a>, <a class="Xr">slowcgi(8)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp"><span class="An">Tracey Emery</span>
+    &lt;<a class="Mt" href="mailto:tracey@traceyemery.net">tracey@traceyemery.net</a>&gt;
+  <br/>
+  <span class="An">Stefan Sperling</span>
+    &lt;<a class="Mt" href="mailto:stsp@openbsd.org">stsp@openbsd.org</a>&gt;</p>
+</section>
+</div>
+<table class="foot">
+  <tr>
+    <td class="foot-date">February 18, 2020</td>
+    <td class="foot-os">OpenBSD 6.6</td>
+  </tr>
+</table>
+</body>
+</html>
blob - /dev/null
blob + 7d48e8d1c5a989cf8872e915ff9abe05e4fcaf0a (mode 644)
--- /dev/null
+++ gotweb.conf.5.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<html>
+<!-- This is an automatically generated file.  Do not edit.
+   Copyright (c) 2020 Tracey Emery <tracey@traceyemery.net>
+  
+   Permission to use, copy, modify, and distribute this software for any
+   purpose with or without fee is hereby granted, provided that the above
+   copyright notice and this permission notice appear in all copies.
+  
+   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+   -->
+<head>
+  <meta charset="utf-8"/>
+  <style>
+    table.head, table.foot { width: 100%; }
+    td.head-rtitle, td.foot-os { text-align: right; }
+    td.head-vol { text-align: center; }
+    .Nd, .Bf, .Op { display: inline; }
+    .Pa, .Ad { font-style: italic; }
+    .Ms { font-weight: bold; }
+    .Bl-diag > dt { font-weight: bold; }
+    code.Nm, .Fl, .Cm, .Ic, code.In, .Fd, .Fn, .Cd { font-weight: bold;
+      font-family: inherit; }
+  </style>
+  <title>GOTWEB.CONF(5)</title>
+</head>
+<body>
+<table class="head">
+  <tr>
+    <td class="head-ltitle">GOTWEB.CONF(5)</td>
+    <td class="head-vol">File Formats Manual</td>
+    <td class="head-rtitle">GOTWEB.CONF(5)</td>
+  </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">gotweb.conf</code> &#x2014;
+    <span class="Nd">gotweb configuration file</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp"><code class="Nm">gotweb.conf</code> is the run-time configuration
+    file for <a class="Xr">gotweb(8)</a>.</p>
+<p class="Pp">The file format is line-based, with one configuration directive
+    per line. Any lines beginning with a &#x2018;#&#x2019; are treated as
+    comments and ignored.</p>
+<p class="Pp">Paths mentioned in <code class="Nm">gotweb.conf</code> must be
+    relative to <span class="Pa">/var/www</span>, the
+    <a class="Xr">chroot(2)</a> environment of <a class="Xr">httpd(8)</a>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="GLOBAL_CONFIGURATION"><a class="permalink" href="#GLOBAL_CONFIGURATION">GLOBAL
+  CONFIGURATION</a></h1>
+<p class="Pp">The available configuration directives are as follows:</p>
+<dl class="Bl-tag">
+  <dt><a class="permalink" href="#got_max_commits_display"><code class="Ic" id="got_max_commits_display">got_max_commits_display</code></a>
+    <var class="Ar">number</var></dt>
+  <dd>Set the maximum amount of commits displayed per page.</dd>
+  <dt><a class="permalink" href="#got_logo"><code class="Ic" id="got_logo">got_logo</code></a>
+    <var class="Ar">path</var></dt>
+  <dd>Set the path to an image file containing a logo to be displayed.</dd>
+  <dt><a class="permalink" href="#got_logo_url"><code class="Ic" id="got_logo_url">got_logo_url</code></a>
+    <var class="Ar">url</var></dt>
+  <dd>Set a hyperlink for the logo.</dd>
+  <dt><a class="permalink" href="#got_max_repos"><code class="Ic" id="got_max_repos">got_max_repos</code></a>
+    <var class="Ar">number</var></dt>
+  <dd>Set the maximum amount of repositories <a class="Xr">gotweb(8)</a> will
+      work with.</dd>
+  <dt><a class="permalink" href="#got_max_repos_display"><code class="Ic" id="got_max_repos_display">got_max_repos_display</code></a>
+    <var class="Ar">number</var></dt>
+  <dd>Set the maximum amount of repositories displayed on the index screen.</dd>
+  <dt><a class="permalink" href="#got_show_repo_age"><code class="Ic" id="got_show_repo_age">got_show_repo_age</code></a>
+    <var class="Ar">on</var> | <var class="Ar">off</var></dt>
+  <dd>Toggle display of last repository modification date.</dd>
+  <dt><a class="permalink" href="#got_show_repo_cloneurl"><code class="Ic" id="got_show_repo_cloneurl">got_show_repo_cloneurl</code></a>
+    <var class="Ar">on</var> | <var class="Ar">off</var></dt>
+  <dd>Toggle display of clone URLs for a repository. This requires the creation
+      of a <span class="Pa">cloneurl</span> file inside the repository which
+      contains one URL per line.</dd>
+  <dt><a class="permalink" href="#got_show_repo_description"><code class="Ic" id="got_show_repo_description">got_show_repo_description</code></a>
+    <var class="Ar">on</var> | <var class="Ar">off</var></dt>
+  <dd>Toggle display of the repository description. The
+      <span class="Pa">description</span> file in the repository should be
+      updated with an appropriate description.</dd>
+  <dt><a class="permalink" href="#got_repos_path"><code class="Ic" id="got_repos_path">got_repos_path</code></a>
+    <var class="Ar">path</var></dt>
+  <dd>Set the path to the directory which contains Git repositories that
+      <a class="Xr">gotweb(8)</a> should publish.</dd>
+  <dt><a class="permalink" href="#got_show_repo_owner"><code class="Ic" id="got_show_repo_owner">got_show_repo_owner</code></a>
+    <var class="Ar">on</var> | <var class="Ar">off</var></dt>
+  <dd>Set whether to display the repository owner. Displaying the owner requires
+      owner information to be added to the <span class="Pa">config</span> file
+      in the repository. <a class="Xr">gotweb(8)</a> will parse owner
+      information from either a [gotweb] or a [gitweb] section. For example:
+    <div class="Bd Pp Bd-indent">
+    <pre>
+[gotweb]
+owner = &quot;Your Name&quot;
+    </pre>
+    </div>
+  </dd>
+  <dt><a class="permalink" href="#got_site_link"><code class="Ic" id="got_site_link">got_site_link</code></a>
+    <var class="Ar">string</var></dt>
+  <dd>Set the displayed site link name for the index page.</dd>
+  <dt><a class="permalink" href="#got_site_name"><code class="Ic" id="got_site_name">got_site_name</code></a>
+    <var class="Ar">string</var></dt>
+  <dd>Set the displayed site name title.</dd>
+  <dt><a class="permalink" href="#got_site_owner"><code class="Ic" id="got_site_owner">got_site_owner</code></a>
+    <var class="Ar">string</var></dt>
+  <dd>Set the displayed site owner.</dd>
+  <dt><a class="permalink" href="#got_show_site_owner"><code class="Ic" id="got_show_site_owner">got_show_site_owner</code></a>
+    <var class="Ar">on</var> | <var class="Ar">off</var></dt>
+  <dd>Toggle display of the site owner.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<p class="Pp">These are the currently configurable items for
+    <a class="Xr">gotweb(8)</a> with their default values.</p>
+<div class="Bd Pp Bd-indent">
+<pre>
+
+#
+# gotweb options
+# all paths relative to /var/www (httpd chroot jail)
+#
+
+got_repos_path			&quot;/got/public&quot;
+
+#got_max_repos			100
+#got_max_repos_display		25
+got_max_commits_display		50
+
+got_site_name			&quot;my public repos&quot;
+got_site_owner			&quot;Got Owner&quot;
+got_site_link			&quot;repos&quot;
+
+got_logo			&quot;got.png&quot;
+got_logo_url			&quot;https://gameoftrees.org&quot;
+
+# on by default
+#got_show_site_owner		off
+#got_show_repo_owner		off
+#got_show_repo_age		false
+#got_show_repo_description	no
+#got_show_repo_cloneurl		off
+</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
+<dl class="Bl-tag Bl-compact">
+  <dt><span class="Pa">/var/www/etc/gotweb.conf</span></dt>
+  <dd>Location of the <code class="Nm">gotweb.conf</code> configuration
+    file.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+  ALSO</a></h1>
+<p class="Pp"><a class="Xr">got(1)</a>, <a class="Xr">gotweb(8)</a></p>
+</section>
+</div>
+<table class="foot">
+  <tr>
+    <td class="foot-date">January 15, 2020</td>
+    <td class="foot-os">OpenBSD 6.6</td>
+  </tr>
+</table>
+</body>
+</html>
blob - 7cbf9a4ab4e63b94db7458c27834b71baf70a8da
blob + ce90884a714ab964bad844cc07b04bc92d916519
--- manual.html
+++ manual.html
@@ -19,4 +19,6 @@ Manual Pages
 <li><a href="tog.1.html">tog</a> &mdash; Git repository browser
 <li><a href="got-worktree.5.html">got-worktree</a> &mdash; Got work tree format
 <li><a href="git-repository.5.html">git-repository</a> &mdash; Git repository format
+<li><a href="gotweb.conf.5.html">gotweb.conf</a> &mdash; gotweb configuration file
+<li><a href="gotweb.8.html">gotweb</a> &mdash; Game of Trees Git repository server for web browsers
 </ul>
blob - 78fa8a84ed8474003333c727ff2846e6e8985a10
blob + 7a41ef9aecfd0375136351d73c8b2d3ff607949e
--- sync-man.sh
+++ sync-man.sh
@@ -4,5 +4,8 @@ for f in got.1 got-worktree.5 git-repository.5; do
 	mandoc -T html $HOME/src/got/got/$f > ./${f}.html
 done
 mandoc -T html $HOME/src/got/tog/tog.1 > ./tog.1.html
+for f in gotweb.8 gotweb.conf.5; do
+	mandoc -T html $HOME/src/got/gotweb/$f > ./${f}.html
+done
 
 hg st --pager never --color never