This article describes mine (the author's, also known as Gustav) attempts to configure an Ikiwiki lab environment on my laptop computer. The purpose of the experiment is to learn how Ikiwiki functions and how to effectively work with Ikiwiki and offline editing with git. The components needed are * Ikiwiki * Apache2 or Nginx web server * Git **Table of Contents** [!toc] What I have in mind is to access my lab wiki through _http://localhost/~/lab-wiki_ for web editing and _~/lab-wiki/wiki-slave_ for local offline editing. It should be noted that what is described here probably is a perfectly _unsafe_ usage of a web server. Make sure that the computer does not except requests from Internet. # Install and configure Git I can not recall how this was done. Refer to [[Git's official website|http://git-scm.com/]] # Install and configure Ikiwiki Refer to [[ikiwiki setup|http://ikiwiki.info/setup/]] at [[ikiwiki's officiatl website|http://ikiwiki.info]] for initial install and configuration and [[an article on Git|http://ikiwiki.info/rcs/git/]] for more details on setting up Ikiwiki together with Git. I did my best to answer the questions provided in the initial installation and default configuration with the target of ending up with something like this: url: http://localhost/~/lab-wiki srcdir: ~/lab-wiki/wiki destdir: ~/public_html/lab-wiki repository: ~/lab-wiki/wiki.git settings: ~/lab-wiki/wiki.setup However, not all of the above was configurable in the form, for example the configuration file location. I needed to move directories and files around and change the remaining configurations in _~/lab-wiki/wiki.setup_ and run $ ikiwiki --setup ~/lab-wiki/wiki.setup I also created the extra Git repository _wiki-slave_ for local edits: $ cd ~/lab-wiki; git clone wiki.git wiki-slave The connectivity chart is now as follows . Bare Git Repository . ~/lab-wiki/wiki.git . / \ . / \ . / \ . The Ikiwiki Repository | . ~/lab-wiki/wiki | . | | . | Repository for Local Edits . | ~/lab-wiki/wiki-slave . | | . The Ikiwiki Web Part | . ~/public_html/lab-wiki | . | . The Preview Ikiwiki Web Part . ~/public_html/lab-wiki-preview # Install and configure Apache 2 For installation, follow the instructions in [[Apache's official documentation|http://httpd.apache.org/docs]]. I got Apache 2.4.6 installed. I needed to activate the userdir module. Refer to [[Per-user web directories|http://httpd.apache.org/docs/2.4/howto/public_html.html]] in Apache's documentation. For Debian do the following $ cd /etc/apache2/mods-enabled $ ln -s ln -s ../mods-available/userdir.load $ ln -s ln -s ../mods-available/userdir.conf Also CGI execution need to be activated. See [[Dynamic Content with CGI|http://httpd.apache.org/docs/2.4/howto/cgi.html]] in Apache's documentation. My _/etc/apache2/mods-available/userdir.conf_ now looks as follows UserDir public_html UserDir /home/*/public_html UserDir disabled root AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require all granted Require all denied Options +ExecCGI AddHandler cgi-script .cgi Options +ExecCGI AddHandler cgi-script .cgi # Get preview of local modifications Now every thing works as work as expected. I can fetch the latest updated to _wiki-slave_, perform my updates, and whenever those are pushed to _origin/master_, the post-update hook makes sure that the web version is updated. But what if I want to inspect and verify my local changes before pushing them to _origin/master_? The subject is covered in [[the article on Git|http://ikiwiki.info/rcs/git/]]. I did what follows. Copy _wiki.setup_ to _wiki-preview.setup_ and edit those fields: wikiname: lab-wiki-preview srcdir: ~/lab-wiki/wiki-slave destdir: ~/public_html/lab-wiki-preview url: http://skolem/~/lab-wiki-preview cgiurl: http://skolem/~/lab-wiki-preview/ikiwiki.cgi cgi_wrapper: ~/public_html/lab-wiki-preview/ikiwiki.cgi git_wrapper: ~/lab-wiki/wiki-slave/.git/hooks/post-commit gitorigin_branch: '' gitmaster_branch: master The idea is that the preview wiki works against wiki-slave, which is my simulated environment for local repository. What always works now is to, at any point, recompile/refresh the wiki: ikiwiki -setup ~/lab-wiki/wiki-preview.setup -refresh Also, committing on the local _master_ branch _should_ automatically update the lab-wiki-preview wiki.