[[!meta copyright="Copyright © 2013, 2014, 2015, 2016 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] /!\ 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](https://ikiwiki.info/bugs/garbled_non-ascii_characters_in_body_in_web_interface/), manually `patch /usr/share/perl5/IkiWiki/CGI.pm` with upstream commits feb21ebfacb341fc34244e1c9b8557fd81d1dfc1, and f35c6a97d1837a37879996211bd6f3c8eb356df9 ([[!debbug 776181]]). * 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) 2015-10-05: E: Package 'libemail-send-perl' has no installation candidate * * * 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, but the latter still needs to be installed) 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/ . * 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/` , 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](http://ikiwiki.info/post-commit/): $ 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, , instead of the staging area on . # IRC, freenode, #hurd, 2013-02-09 We need an httpd (Apache used to work), and ikiwiki and some such stuff. This has its own git repository. This was on a separate virtual machine. Then there was the Git repository on flubber used for people to push to. Ho -- let me actually try to remember the setup. Has been some years... what machine currently hosts the wiki ? Anyway, there is no requirement for the web server to be on a separate machine; your decision. braunr: http://www.gnu.org/software/hurd/public_hurd_boxen.html snubber That was the web server. And flubber had the repository for developers to push to. The repository for people to push to and pull from (used to be on flubber) would be on darnassus now. braunr: Of course ;-) -- I had some parts of the process documented: http://www.gnu.org/software/hurd/public_hurd_boxen/installation/snubber.html If both Git repositories are to be on the same machine (darnassus) we might not actually need inetutils-inetd and netcat. Still trying to figure out what I had done there... ;-) OK, I again understand the setup. Last been touched in the 2008/2009 timeframe. ;-) I'll add a hurd-web user. So... I actually have to locate a backup of the files from flubber related to the wiki, * tschwinge goes searching his backup devices. i added userdirs on darnassus' apache braunr: I just noticed when I wanted to add it myself. ;-) braunr: Do you know about CGI scripts? yes braunr: snubber had these in /var/www/cgi-bin/; darnassus now in /usr/lib/cgi-bin/. ikiwiki needs to install one CGI script. ok Does this go into /usr/lib/cgi-bin/ then? Or into ~hurd-web/ and a symlink somewhere? ikiwiki should have installed it where it's appropriate normally in /usr/lib/cgi-bin/ It's a CGI script that is generated per ikiwiki instance, so specific to hurd-web. where does it install it by default ? $PWD ;-) ah it seems a bit silly to me to generate cgi scripts :/ i don't care much actually, we won't have virtual servers so anywhere is fine What does the +SymLinksIfOwnerMatch Apache option mean? apache will normally not follow symlink unless the owner of the symlink is the same as the target's (with this option) 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? the traditional way to access cgi scripts is to explicitely refer to them as http://server/cgi-bin/script using *.cgi may allow too open access to cgis (although normally, the userdir conf should disable them) hm not sure it does so put it in /usr/lib/cgi-bin/ 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. OK. and just named hurd-web