# documentation:2.0:applications:dokuwiki
Keywords: documentation,2.0,applications,dokuwiki

# 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.

- For Apache:

    <VirtualHost *:80>
           ServerName dokuwiki.example.com

           PerlHeaderParserHandler Lemonldap::NG::Handler

           ...

    </VirtualHost>

- For Nginx:

    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.