summaryrefslogtreecommitdiffstats
path: root/create-a-wiki.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'create-a-wiki.mdwn')
-rw-r--r--create-a-wiki.mdwn154
1 files changed, 154 insertions, 0 deletions
diff --git a/create-a-wiki.mdwn b/create-a-wiki.mdwn
new file mode 100644
index 0000000..14fb760
--- /dev/null
+++ b/create-a-wiki.mdwn
@@ -0,0 +1,154 @@
+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 web server
+* Git
+
+**Table of Contents**
+[!toc]
+
+What I have in mind is to access my lab wiki through
+_http://localhost/~<name>/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/~<name>/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
+
+ <IfModule mod_userdir.c>
+ UserDir public_html
+ UserDir /home/*/public_html
+ UserDir disabled root
+
+ <Directory /home/*/public_html>
+ AllowOverride FileInfo AuthConfig Limit Indexes
+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+ <Limit GET POST OPTIONS>
+ Require all granted
+ </Limit>
+ <LimitExcept GET POST OPTIONS>
+ Require all denied
+ </LimitExcept>
+ </Directory>
+
+ <Directory /home/*/public_html>
+ Options +ExecCGI
+ AddHandler cgi-script .cgi
+ </Directory>
+ <Directory /home/*/public_html/*>
+ Options +ExecCGI
+ AddHandler cgi-script .cgi
+ </Directory>
+ </IfModule>
+
+# 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/~<name>/lab-wiki-preview
+ cgiurl: http://skolem/~<name>/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.