Table of Contents

Dokuwiki

Presentation

DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful syntax which makes sure the data files remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files – no database is required.

LemonLDAP::NG wiki uses Dokuwiki!

You will need to install a Dokuwiki plugin, available on download page. The plugin will check the REMOTE_USER environment variable to get the connected user.

Installation

Download the plugin and copy the files in dokuwiki inc/auth/ directory:

cp lemonldap.class.php inc/auth/
cp lemonldapuserdatabackend.class.php inc/auth/

Configuration

Dokuwiki local configuration

Edit Dokuwiki local configuration (conf/local.php) and set lemonldap as authentication type:

$conf[authtype] = lemonldap;

Dokuwiki virtual host

Configure Dokuwiki virtual host like other protected virtual host.

If you are protecting Dokuwiki with LL::NG as reverse proxy, convert header into REMOTE_USER environment variable.
<VirtualHost *:80>
       ServerName dokuwiki.example.com
 
       PerlHeaderParserHandler Lemonldap::NG::Handler
 
       ...
 
</VirtualHost>
server {
  listen 80;
  server_name dokuwiki.example.com;
  root /path/to/application;
  # Internal authentication request
  location = /lmauth {
    internal;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
    # Drop post datas
    fastcgi_pass_request_body  off;
    fastcgi_param CONTENT_LENGTH "";
    # Keep original hostname
    fastcgi_param HOST $http_host;
    # Keep original request (LLNG server will received /llauth)
    fastcgi_param X_ORIGINAL_URI  $request_uri;
  } 
 
  # Client requests
  location / {
    auth_request /lmauth;
    auth_request_set $lmremote_user $upstream_http_lm_remote_user;
    auth_request_set $lmlocation $upstream_http_location;
    error_page 401 $lmlocation;
    try_files $uri $uri/ =404;
 
    ...
 
    include /etc/lemonldap-ng/nginx-lua-headers.conf;
  }
  location / {
    try_files $uri $uri/ =404;
  }
}

Dokuwiki virtual host in Manager

Go to the Manager and create a new virtual host for Dokuwiki.

Just configure the access rules.

If using LL::NG as reverse proxy, configure the Auth-User header, else no headers are needed.