summaryrefslogtreecommitdiffstats
path: root/create-a-wiki
diff options
context:
space:
mode:
Diffstat (limited to 'create-a-wiki')
-rw-r--r--create-a-wiki/additional.mdwn64
-rw-r--r--create-a-wiki/create-a-wiki.mdwn187
-rw-r--r--create-a-wiki/lab-wiki.mdwn28
3 files changed, 279 insertions, 0 deletions
diff --git a/create-a-wiki/additional.mdwn b/create-a-wiki/additional.mdwn
new file mode 100644
index 0000000..3c912a8
--- /dev/null
+++ b/create-a-wiki/additional.mdwn
@@ -0,0 +1,64 @@
+---
+title: Additional considerations for a Fripost wiki preview
+...
+
+Here follows a few additional configuration considerations. These are
+not mandatory for a naked preview setup. To follow instructions,
+however, a setup according
+to [Create a Fripost wiki preview](/create-a-wiki-preview) is
+presumed.
+
+[[!toc]]
+
+Absolute paths
+==============
+
+Many links on the Fripost wiki are absolute. That means that you
+sometimes will not be able to follow homepage page and wiki page links
+between your local preview wiki. For testing purposes, that can
+sometimes be necessary. The best strategy is to edit your */etc/hosts*
+table and make *fripost.org* and *wiki.fripost.org* point to
+*localhost*.
+
+Of course your web server need to be configured to serve those
+pages:
+
+```
+cat /etc/nginx/sites-available/localhost.fripost.conf \
+ | sed 's/\.localhost/\.org/g' \
+ | sudo tee /etc/nginx/sites-available/org.fripost.conf
+sudo ln -s -r -t /etc/nginx/sites-enabled/ /etc/nginx/sites-available/org.fripost.conf
+sudo nginx -t && sudo systemctl restart nginx.service
+```
+
+Modify the */etc/hosts* file:
+
+```
+sed -n '/fripost.localhost/ {s/\.localhost/.org/g; p}' < /etc/hosts | sudo tee /tmp/hosts
+grep -q wiki.fripost.org /etc/hosts \
+ || sudo sed -i '/::1.*fripost.localhost/ r /tmp/hosts' /etc/hosts
+```
+
+You might experience strange effects from that the web-browser has
+cached DNS information. Search Internet for how to flush your
+browser's DNS cache.
+
+
+Public www locations (userdir)
+==============================
+
+For to be able to access `http://localhost/~user` the "userdir"
+functionality is needed. For Nginx, put the following in e.g.
+*/etc/nginx/sites-available/localhost*:
+
+```
+server {
+ location ~ ^/~(.+?)(/.*)?$ {
+ alias /home/$1/public_html$2;
+ index index.html index.htm
+ autoindex on;
+ }
+}
+```
+
+This is of limited use in the context of Fripost's wiki.
diff --git a/create-a-wiki/create-a-wiki.mdwn b/create-a-wiki/create-a-wiki.mdwn
new file mode 100644
index 0000000..b6736f1
--- /dev/null
+++ b/create-a-wiki/create-a-wiki.mdwn
@@ -0,0 +1,187 @@
+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/~<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](https://git-scm.com/)
+
+
+Install and configure Ikiwiki
+=============================
+
+Refer to [ikiwiki setup](https://ikiwiki.info/setup/) at
+[ikiwiki's official website](https://ikiwiki.info) for initial
+install and configuration and
+[an article on Git](https://ikiwiki.info/rcs/git/) for more details on
+setting up Ikiwiki together with Git.
+
+Install packages referred to in the ansible configuration:
+
+ sudo aptitude install \
+ ikiwiki \
+ libauthen-passphrase-perl \
+ highlight-common libhighlight-perl libimage-magick-perl \
+ libmail-sendmail-perl libnet-dns-sec-perl \
+ fcgiwrap spawn-fcgi \
+ pandoc
+
+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](https://httpd.apache.org/docs). I
+got Apache 2.4.6 installed.
+
+I needed to activate the userdir module. Refer to
+[Per-user web directories](https://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](https://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>
+
+
+Install and conifgure Nginx
+===========================
+
+A valid web server alternative
+is
+[Nginx](http://nginx.org/en/docs/).
+
+For installation and configuration
+follow [Ikiwiki on Dot CGI](https://ikiwiki.info/tips/dot_cgi/). `sudo
+aptitude install nginx`. Note the alexjj comment that on
+Debian the package *fcgiwrap* automatically spwans the FastCGI
+program.
+
+
+
+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](https://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.
diff --git a/create-a-wiki/lab-wiki.mdwn b/create-a-wiki/lab-wiki.mdwn
new file mode 100644
index 0000000..e3f27f8
--- /dev/null
+++ b/create-a-wiki/lab-wiki.mdwn
@@ -0,0 +1,28 @@
+---
+title: Create a fresh laboratory Ikiwiki install
+...
+
+*DRAFT! The article [Create a wiki](create-a-wiki) describes an
+outdated configuration of a fresh Ikiwiki install for laboratory
+purposes. This page is a stab on updating that configuration and
+guide. The update is not finished yet.*
+
+This guide has the history in attempts of the authors to understand
+how Ikiwiki is setup in order to write
+the [Create a Fripost wiki preview](/create-a-wiki-preview). The case
+is useful for those that want to create an fresh Ikiwiki install for
+other purposes, taking Fripost's as a starting point or for those that
+need a safe sandbox lab environment to really hack away.
+
+A setup according to [creation of a preview](/create-a-wiki-preview)
+presumed for preparation of all components.
+
+What we have in mind is to access the wiki, call it Lab wiki, through
+*http://wiki.lab.localhost` 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.
+
+*STOP*