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


  • apache2-mpm-prefork (used to be apache2-mpm-worker but changed because of some threading issues with CGI)

  • ikiwiki libcgi-session-perl libtext-csv-perl libcgi-formbuilder-perl libauthen-passphrase-perl libnet-openid-consumer-perl libterm-readline-gnu-perl libgravatar-url-perl librpc-xml-perl libtext-wikiformat-perl libhighlight-perl perlmagick graphviz texinfo

    • libemail-send-perl (for my sendmail vs. ikiwiki patch)

    • libsearch-xapian-perl xapian-omega (for ikiwiki's search plugin)

    • libyaml-perl libyaml-syck-perl (for ikiwiki's YAML field plugins)

    • libtext-markdown-perl (used instead of libtext-markdown-discount-perl)

    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.

  • gitweb highlight

    sudo ln -s ~hurd-web/hurd-web.git /var/lib/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'.


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


/!\ TODO.

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


/!\ 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 http://darnassus.sceen.net/~hurd-web/.

Restore Backup

/!\ TODO.


rewrite.load, userdir.conf, userdir.load

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
<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.
<braunr> isn't it gnu.org ?
<tschwinge> And flubber had the repository for developers to push to.
<tschwinge> No, gnu.org is updated manually (by me).
<braunr> ah
<tschwinge> It'S a snapshot of the wiki so to say.
<braunr> ok so, is this wiki really meant to be modifiable from a browser ?
<tschwinge> Yes.
<braunr> i see
<tschwinge> I should still be able to access the data from Barry's zenhost
  (including all the VMs it hosted), so I should be able to replicate that
  quite easily.
<braunr> do you think it could be hosted on darnassus, or would you like a
  separate vm ?
<tschwinge> The repository for people to push to and pull from (used to be
  on flubber) would be on darnassus now.
<tschwinge> About the web server, hmm.
<tschwinge> It's basically a security concern.
<tschwinge> And it might get hammered by bots from time to time.
<braunr> it won't need much resources i suppose
<tschwinge> No.  The web server (snubber) was running with 242 MiB of RAM,
  and had uptimes of several weeks typically.
<braunr> tschwinge: otherwise, could it use the web server running on the
  host ?
<tschwinge> The host being darnassus?
<braunr> no
<braunr> shattrath, the linux system
<tschwinge> Ah.
<tschwinge> Sure.
<tschwinge> There is no requirement this to be a Hurd system -- was just
  nice to show to people.
<braunr> i think it is too
<braunr> what's the problem with darnassus ?
<braunr> yçou mentioned security
<tschwinge> The web server being a public-facing component which might be
  broken into.
<braunr> how ?
<braunr> it's so much easier to just ask for an account .. :)
<tschwinge> Web server bugs, CGI script bugs, etc.
<tschwinge> Sure.
<tschwinge> I just wanted to make you aware of it.  :-)
<braunr> oh don't worry
<braunr> ok so darnassus it is
<pinotree> was it running apache? maybe, if other (lighter?) web servers
  are tested to work on hurd, they could be used
<tschwinge> pinotree: Yes, and yes.
<braunr> doesn't ikiwiki need php ?
<tschwinge> Only requirement (I think) is abaility to run CGI scripts.
<tschwinge> braunr: No.  It's written in perl.
<braunr> ok
<braunr> i still think i'll use apache
<braunr> it's really not that heavy
<braunr> lighter servers matter when the number of concurrent clients get
  very high
<tschwinge> Then I'll figure out how exactly the setup was between flubber
  and snubber.
<braunr> ok
<braunr> it's good to finally get that going :)
<tschwinge> braunr: Of course ;-) -- I had some parts of the process
<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.  ;-)
<braunr> :)
<tschwinge> braunr: Please use the following ikiwiki packages: dpkg -i
<braunr> what makes this package special ?
<tschwinge> Some patch that I added to get rendering of our news pages
<braunr> ok
<tschwinge> I have not updated it ever since (and the patch was not yet in
  a suitable form for upstream).
<tschwinge> Nothing major.
<braunr> tschwinge: why is the ikiwiki package status hi ?
<tschwinge> braunr: I set it to hold.
<braunr> ah ok
<braunr> so you finished your pat i suppose
<braunr> i'll install apache
<braunr> part*
<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

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

<tschwinge> http://darnassus.sceen.net/~hurd-web/
<tschwinge> Have at it!
<tschwinge> braunr: ^
<braunr> :)
<braunr> great
<tschwinge> And push to/pull from darnassus:~hurd-web/hurd-web.git for Git
<tschwinge> Will update the web pages tomorrow, and all that.
<tschwinge> braunr: And also install gitweb on darnassus, so one can view
  diffs of the wiki pages, etc.  OK?
<braunr> tschwinge: there are still links towards bddebian
<braunr> history for example
<braunr> just fyi, we can look at this tomorrow
<tschwinge> braunr: Yes, that'S what I need gitweb for.
<tschwinge> braunr: gitweb installed, hurd-web URLs fixed
  (s%bddebian%darnassus), also some more ikiwiki-related Perl pacakges
  installed (openID login, for example).