/!\ Incomplete, but hopefully helpful for future reference.

Packages

  • apache2

    Installation done by Richard.

  • ikiwiki

    Modified package, ikiwiki_3.20140227_all.deb, which contains some patch (not yet in a suitable form for upstream) to get rendering of our news pages correct (correct?). Thus, set the package to hold with dpkg --set-selections. To avoid garbled non-ascii characters in body in web interface, manually patch /usr/share/perl5/IkiWiki/CGI.pm with upstream commits feb21ebfacb341fc34244e1c9b8557fd81d1dfc1, and f35c6a97d1837a37879996211bd6f3c8eb356df9 (Debian bug #776181).

    Make sure that liblwpx-paranoidagent-perl is not installed; OpenID logins with fail otherwise: no_identity_server: Could not determine ID provider from URL. Issue discovered on 2014-02-28, but unclear since when it did actually occur. Nothing in the apache logs. Not fixed by the update to ikiwiki 3.20140227.

  • cgit

    So one can view diffs of the wiki pages, etc.

    $ sudo ln -s ~hurd-web/hurd-web.git /var/lib/git/
    

    https://darnassus.sceen.net/cgit/hurd-web.git/.

  • git-daemon-sysvinit

    Enable as per /usr/share/doc/git-daemon-sysvinit/README.Debian. Also set GIT_DAEMON_OPTIONS=--export-all, and GIT_DAEMON_DIRECTORY='/var/lib/git'.

~hurd-web/

https://darnassus.sceen.net/~hurd-web/, and Git access: push to/pull from darnassus:~hurd-web/hurd-web.git.

Setup

$ mkdir hurd-web.git && GIT_DIR=hurd-web.git git init
[...]

Configure the post-update hook:

$ ln -is ../../public_html.workspace.update hurd-web.git/hooks/post-update

For a full rebuild:

$ ./public_html.workspace.generate\ wrappers --rebuild

May want to clean up ~hurd-web/public_html.workspace/.ikiwiki/ before that. /!\ But preserve the userdb file.

As a user with appropriate permissions, then install the CGI file:

§ sudo mv ~hurd-web/public_html.workspace.cgi /usr/lib/cgi-bin/hurd-web

~tschwinge/

/!\ TODO.

$ mkdir tmp/backup && chmod 0733 tmp/backup

/var/www/robots.txt

/!\ TODO.

This file used to contain:

User-agent: *
Disallow: /gitweb/
Disallow: /cgi-bin/

... which I've now changed to:

User-agent: *
Disallow: /

The goal is that robots rather index the official pages, http://www.gnu.org/software/hurd/, instead of the staging area on https://darnassus.sceen.net/~hurd-web/.

IRC, freenode, #hurd, 2013-02-09

<tschwinge> We need an httpd (Apache used to work), and ikiwiki and some
  such stuff.
<tschwinge> This has its own git repository.
<tschwinge> This was on a separate virtual machine.
<tschwinge> Then there was the Git repository on flubber used for people to
  push to.
<tschwinge> Ho -- let me actually try to remember the setup.  Has been some
  years...
<braunr> what machine currently hosts the wiki ?
<tschwinge> Anyway, there is no requirement for the web server to be on a
  separate machine; your decision.
<tschwinge> braunr: http://www.gnu.org/software/hurd/public_hurd_boxen.html
<tschwinge> snubber
<tschwinge> That was the web server.
<tschwinge> And flubber had the repository for developers to push to.
<tschwinge> The repository for people to push to and pull from (used to be
  on flubber) would be on darnassus now.

<tschwinge> braunr: Of course ;-) -- I had some parts of the process
  documented:
  http://www.gnu.org/software/hurd/public_hurd_boxen/installation/snubber.html
<tschwinge> If both Git repositories are to be on the same machine
  (darnassus) we might not actually need inetutils-inetd and netcat.
<tschwinge> Still trying to figure out what I had done there...  ;-)
<tschwinge> OK, I again understand the setup.  Last been touched in the
  2008/2009 timeframe.  ;-)

<tschwinge> I'll add a hurd-web user.
<tschwinge> So...  I actually have to locate a backup of the files from
  flubber related to the wiki,
* tschwinge goes searching his backup devices.
<braunr> i added userdirs on darnassus' apache
<tschwinge> braunr: I just noticed when I wanted to add it myself.  ;-)
<tschwinge> braunr: Do you know about CGI scripts?
<braunr> yes
<tschwinge> braunr: snubber had these in /var/www/cgi-bin/; darnassus now
  in /usr/lib/cgi-bin/.
<tschwinge> ikiwiki needs to install one CGI script.
<braunr> ok
<tschwinge> Does this go into /usr/lib/cgi-bin/ then?  Or into ~hurd-web/
  and a symlink somewhere?
<braunr> ikiwiki should have installed it where it's appropriate
<braunr> normally in /usr/lib/cgi-bin/
<tschwinge> It's a CGI script that is generated per ikiwiki instance, so
  specific to hurd-web.
<braunr> where does it install it by default ?
<tschwinge> $PWD ;-)
<braunr> ah
<braunr> it seems a bit silly to me to generate cgi scripts :/
<braunr> i don't care much actually, we won't have virtual servers
<braunr> so anywhere is fine
<tschwinge> What does the +SymLinksIfOwnerMatch Apache option mean?
<braunr> apache will normally not follow symlink
<braunr> unless the owner of the symlink is the same as the target's
<braunr> (with this option)
<tschwinge> That's enabled for CGI scripts.  So would it work to have a
  symlink /usr/lib/cgi-bin/hurd-web.cgi -> ~hurd-web/hurd-web.cgi?
<braunr> the traditional way to access cgi scripts is to explicitely refer
  to them as http://server/cgi-bin/script
<braunr> using *.cgi may allow too open access to cgis
<braunr> (although normally, the userdir conf should disable them)
<braunr> hm not sure it does
<braunr> so put it in /usr/lib/cgi-bin/
<tschwinge> So the hurd-web ikiwiki instance just needs to be configured
  accordingly with the URL where the CGI script will be found, and then it
  will render the pages accordingly.
<tschwinge> OK.
<braunr> and just named hurd-web