diff options
| author | Gustav Eek <gustav.eek@fripost.org> | 2019-10-03 12:51:22 +0200 | 
|---|---|---|
| committer | Gustav Eek <gustav.eek@fripost.org> | 2019-10-04 10:36:39 +0200 | 
| commit | bee7cf67c42d6119d0a1bdf1ac617cd2b9bbf37e (patch) | |
| tree | 52973e06daf29d206c754cb77a0c92c66e5dd992 | |
| parent | 2dea03a6c31f0c69924be0b0629554d6d967da75 (diff) | |
SQUASH Full setup provided
The rest of Creating a wiki preview is provided
 * TODO Link to more complicated guides
 * TODO Make the hole configuration rather a Bash script
| -rw-r--r-- | create-a-wiki-preview.mdwn | 210 | 
1 files changed, 157 insertions, 53 deletions
| diff --git a/create-a-wiki-preview.mdwn b/create-a-wiki-preview.mdwn index 61d42b4..05f8153 100644 --- a/create-a-wiki-preview.mdwn +++ b/create-a-wiki-preview.mdwn @@ -1,5 +1,5 @@  --- -title: Create a wiki preview +title: Create a Fripost wiki preview  ...  This article describes how to set up preview of Friposts wiki. @@ -8,33 +8,43 @@ This article describes how to set up preview of Friposts wiki.  [[!toc]] -The basic idea is something like the following: +The setup will produce the following layout: -             Bare Git Repository -       git.fripost.org:fripost-wiki.git -                      | -                      | -          Repository for Local Edits -             ~/git/fripost/wiki -                      | -	                  | -	     The Preview Ikiwiki Web Part -	 ~/public_html/fripost-wiki +``` +    Bare remote Git repository + (git.fripost.org:fripost-wiki.git) +                | +                |                 Library and config +    Repository for Local Edits       (~/.ikiwiki/) +       (~/git/fripost/wiki)               | +                |                    +---------+ +                |                    | Ikiwiki | +   The Preview Ikiwiki Web Part -----| Pandoc  | +    (~/public_html/fripost-wiki)     | Plugins | +                |                    +---------+ +        +------------+      +---------+ +        | Web server | ---- | Browser | +        +------------+      +---------+ +```  Where *~/git/fripost/wiki* is a local git repository with remote -tracking of the main bare wiki repository -*git.fripost.org:fripost-wiki.git*. I define an alias command for -recompilation of the local version of the. The local preview version -will reside in *~/public_html/fripost-wiki*. Eventually it -will be accessed by pointing the browser to -*http\://fripost.localhost* and *http://wiki.fripost.localhost* -respectively. - -Process overview: - -* Install and configure Git -* Install and configure Apache 2 -* Install Ikiwiki +tracking of Fripost's origin remote wiki repository +*git.fripost.org:fripost-wiki.git*. The local preview version will +reside in *~/public_html/fripost-wiki*. Eventually it will be accessed +by pointing the browser to *http://fripost.localhost* and +*http://wiki.fripost.localhost* respectively. The wiki configuration +*~/.ikiwiki/fripost-wiki.setup* will be only minor modifications of +Friposts wiki configuration. + +The guide assumes Debian stable. This is the overview of software +needed: + + * Git  -- from Debian + * Ikiwiki -- from Debian + * Pandoc -- from Debian + * Some Ikiwiki plugins (e.g. for Pandoc) which will be provided from +   Fripost's configuraiton + * Nginx -- webserver from Debian  Install and configure Git  ========================= @@ -44,17 +54,17 @@ instructions.  You will need the following repositories: - * https://git.fripost.org/fripost-ansible - * https://git.fripost.org/fripost-wiki + * <https://git.fripost.org/fripost-ansible> + * <https://git.fripost.org/fripost-wiki> -Clone with ssh if you want to edit, which will require you to provide +Clone with SSH if you want to edit, which will require you to provide  a public key to Fripost administrators. Below snippets assume: -    $ git clone https://git.fripost.org/fripost-ansible ~/git/fripost/ansible -    $ git clone https://git.fripost.org/fripost-wiki ~/git/fripost/wiki +    git clone https://git.fripost.org/fripost-ansible ~/git/fripost/ansible +    git clone https://git.fripost.org/fripost-wiki ~/git/fripost/wiki -Install and configure Ikiwiki and Pandoc -======================================== +Install and configure Ikiwiki, Pandoc and plugins +=================================================  Refer to [ikiwiki setup](https://ikiwiki.info/setup/) at  [ikiwiki's official website](https://ikiwiki.info) for initial @@ -62,40 +72,134 @@ 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: +Install packages referred to in the Ansible configuration: -    sudo aptitude install \ +    sudo apt install \        ikiwiki \        libauthen-passphrase-perl \        highlight-common libhighlight-perl libimage-magick-perl \        libmail-sendmail-perl libnet-dns-sec-perl \        fcgiwrap spawn-fcgi \ -      pandoc +      pandoc \ +      clamdscan -Copy Ikiwiki configuration from Fripost ansible repository: +Copy Ikiwiki configuration from Fripost Ansible repository: -    mkdir -p ~/public_html/fripost-wiki ~/.ikiwiki  +    mkdir -p ~/public_html/fripost-wiki ~/.ikiwiki      cp -r ~/git/fripost/ansible/roles/wiki/files/var/lib/ikiwiki/* ~/.ikiwiki -Modify the configuration *~/.ikiwkik/fripost-wiki.setup* according to: +Modify the configuration *~/.ikiwkik/fripost-wiki.setup* according to +the below (inspect */tmp/fripost-wiki.sed*):  ``` -adminemail: <your mail> -adminuser: -  - <your user> -srcdir: <your home>/git/fripost/wiki/ -destdir: <your home>/public_html/fripost-wiki -url: http://fripost.localhost/ # http://wiki.fripost.localhost/ -cgiurl: http://fripost.localhost/ikiwiki.cgi -cgi_wrapper: <your home>/public_html/fripost-wiki/ikiwiki.cgi -sslcookie: 0 -libdir: <your home>/.ikiwiki -# git_wrapper: /home/gustav/fripost/wiki/.git/hooks/post-update -#historyurl: -#diffurl: -gitorigin_branch: '' +cat <<EOF | tee /tmp/fripost-wiki.sed +/adminemail:/ s/admin@/$USER@/ +/^adminuser:/,/^[a-z]*:/ { +  /^ *-/ d +  /^adminuser:/ a \\ +      - $USER +} +/^srcdir:/      s|:.*$|: $HOME/git/fripost/wiki| +/^destdir:/     s|:.*$|: $HOME/public_html/fripost-wiki| +/^cgi_wrapper:/ s|:.*$|: $HOME/public_html/fripost-wiki/ikiwiki.cgi| +/url:/    s|:.*$|: http://wiki.fripost.localhost/ \# http://fripost.localhost/| +/cgiurl:/ s|:.*$|: http://wiki.fripost.localhost/ikiwiki.cgi| +/^libdir:\|^ *file:/ s|/var/lib/ikiwiki|$HOME/.ikiwiki| +/^sslcookie:/ s/1/0/g +/^git_wrapper:/ s/^/\#/g +/^wrappergroup:/ s/^/\#/g +/^historyurl:/ s/^/\#/g +/^diffurl:/ s/^/\#/g +/^gitorigin_branch:/ s|:.*$|: ''| +EOF +sed -f /tmp/fripost-wiki.sed \ +  < ~/git/fripost/ansible/roles/wiki/files/var/lib/ikiwiki/fripost-wiki.setup \ +  > ~/.ikiwiki/fripost-wiki.setup  ```  *TODO investegate what to do with post update thing.* -    $ ikiwiki --setup ~/.ikiwkik/fripost-wiki.setup +Run setup: + +    $ ikiwiki --setup ~/.ikiwiki/fripost-wiki.setup + +Install and conifgure Nginx and host files +========================================== + +Fripost uses [Nginx](http://nginx.org/en/docs/). For installation and +configuration +follow [Ikiwiki on Dot CGI](https://ikiwiki.info/tips/dot_cgi/). Note +the alexjj comment that on Debian the package *fcgiwrap* automatically +spwans the FastCGI program. + +    sudo apt install nginx + +The follwing will configure *http://wiki.fripost.localhost* and +*http://fripost.localhost*: + +``` +cat <<EOF | sudo tee /etc/nginx/sites-available/localhost.fripost.conf +server { +  listen [::]:80; +  listen *:80; +  server_name fripost.localhost; +  access_log /var/log/nginx/access.log.localhost.fripost.log; +  error_log /var/log/nginx/error.log.localhost.fripost.log; +  location / { +    root $HOME/public_html/fripost-wiki/website; +    location /static { +      root $HOME/public_html/fripost-wiki; +    } +  } +} + +server { +  listen [::]:80; +  listen *:80; +  server_name wiki.fripost.localhost; +  access_log /var/log/nginx/access.log.localhost.fripost.wiki.log; +  error_log /var/log/nginx/error.log.localhost.fripost.wiki.log; +  location / { +    root $HOME/public_html/fripost-wiki; +  } +} +EOF +``` + +Make available, test and install: + +``` +sudo ln -s -r -t /etc/nginx/sites-enabled/ /etc/nginx/sites-available/localhost.fripost.conf +sudo nginx -t && sudo systemctl restart nginx.service +``` + +Modify host files: + +``` +cat <<EOF > /tmp/hosts + +# Fripost wiki preview setup +127.0.1.1   wiki.fripost.localhost fripost.localhost +::1         wiki.fripost.localhost fripost.localhost +EOF +grep -q wiki.fripost.localhost /etc/hosts \ +  || { sudo cp /etc/hosts /etc/hosts.bac_$(date +%Y%m%d) \ +       && sudo sed -i '$ r /tmp/hosts' /etc/hosts ; } +``` + +Alternatives to Nginx include Apache. Fripost wiki used include +configuration for Apache, but these are not maintained any +longer. Brows this repository history for sample configurations. + +Refresh wiki +============ + +Now all is in place! Visit <http://wiki.fripost.localhost>. Use the +following commands to refresh or fully rebuild the wiki: + +``` +ikiwiki --setup ~/.ikiwiki/fripost-wiki.setup --refresh +ikiwiki --setup ~/.ikiwiki/fripost-wiki.setup --rebuild +``` + +Happy hacking! | 
