PeterMosmans.dokuwiki
Ansible Role: Dokuwiki
This role installs, sets up, secures, and updates Dokuwiki on a server. It focuses on consistently and securely setting up Dokuwiki. Note that it does not install a web server by itself but can configure an Apache web server if needed.
Requirements
You need a web server with PHP installed—such as PeterMosmans.apache2.
Role Variables
Here are the available settings with their default values listed in default/main.yml.
dokuwiki_configure_apache2: If true, it will set up an Apache configuration (
dokuwiki.conf.j2) and enable the site. By default, this variable is not set (false).dokuwiki_name: The name of your Dokuwiki, used in Apache logs and cleanup jobs (if
dokuwiki_configure_apache2is true). This allows multiple Dokuwiki sites on the same server. Default:dokuwiki_name: dokuwikidokuwiki_source: The URL for the latest Dokuwiki version. Default:
dokuwiki_source: https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgzdokuwiki_base: The local path where Dokuwiki will be installed. Default:
dokuwiki_base: /var/www/htmldokuwiki_group: The group that owns the Dokuwiki files. Default:
dokuwiki_group: www-datadokuwiki_plugins: A list of plugins to install automatically. You need to point to tar or .tgz sources. Example:
- name: pagelist src: https://github.com/dokufreaks/plugin-pagelist/tarball/masterdokuwiki_plugins_remove: A list of plugins to remove during installation or upgrade. Default:
dokuwiki_plugins_remove: - name: authad - name: authldap - name: authmysql - name: authpdo - name: authpgsql - name: info - name: popularitydokuwiki_provision: If true, it applies configuration templates to Dokuwiki. If it's false or not specified, Dokuwiki will be set up without custom configurations. When this variable is true, it will also replace the existing Dokuwiki configuration. Config files that will be templated include:
/conf/acl.auth.php/conf/local.php/conf/plugins.local.php/conf/users.auth.php
Example:
dokuwiki_provision: truedokuwiki_savedir: The directory where all your Dokuwiki content will be stored. Default:
dokuwiki_savedir: /var/www/html/datadokuwiki_templates: A list of templates to install automatically. Example:
dokuwiki_templates: - name: bootstrap3 src: https://github.com/LotarProject/dokuwiki-template-bootstrap3/tarball/masterdokuwiki_user: The user who owns the Dokuwiki files. Default:
dokuwiki_user: root
Provisioning
The following variables will be used in the configuration templates and will only take effect if dokuwiki_provision is set to true.
dokuwiki_acl_all: Access control settings for everyone. By default, only logged-in users can access (0).
dokuwiki_acl_user: Access control settings for regular users. By default, users can upload, create, edit, and read (8).
dokuwiki_disableactions: Actions to disable. By default, user registration is disabled.
dokuwiki_title: The title of your Dokuwiki.
dokuwiki_local: A list of custom settings to add to the
local.phpfile. Example:dokuwiki_local: - name: "['passcrypt']" value: 'bcrypt'This will add:
$conf['mytemplate'] = 'myvalue';dokuwiki_users: A list of users with details, including:
- login: login - hash: password hash - name: full name - email: email address - groups: comma separated list of groupsExample:
dokuwiki_users: - login: admin hash: "$2y$05$Nr3wFqH54gcdhxPK9easseLSVwLAnLTD2flYmQbAbCVIiiTU4mCjS" name: Administrator email: admin@admin groups: admin,userThis will create an
adminuser in Dokuwiki with the encrypted password.
Dependencies
None.
Example Playbook
- hosts: all
become: yes
become_method: sudo
roles:
- role: PeterMosmans.dokuwiki
vars:
dokuwiki_base: /var/www/html
dokuwiki_configure_apache2: true
dokuwiki_plugins:
- name: tag
src: https://github.com/dokufreaks/plugin-tag/tarball/master
- name: pagelist
src: https://github.com/dokufreaks/plugin-pagelist/tarball/master
dokuwiki_plugins_remove:
- name: authad
- name: authldap
- name: authmysql
- name: authpdo
- name: authpgsql
- name: info
- name: popularity
dokuwiki_preconfigure: true
dokuwiki_savedir: /var/www/html/data
dokuwiki_template: bootstrap3
dokuwiki_templates:
- name: bootstrap3
src: https://github.com/LotarProject/dokuwiki-template-bootstrap3/tarball/master
dokuwiki_users:
- login: admin
hash: "$2y$05$Nr3wFqH54gcdhxPK9easseLSVwLAnLTD2flYmQbAbCVIiiTU4mCjS"
name: Administrator
email: admin@admin
groups: admin,user
This example will install Dokuwiki in /var/www/html and will use /var/www/html/data for data storage. It will install the tag and pagelist plugins, and remove several unnecessary plugins. It also sets up the bootstrap3 theme and creates an admin user.
License
GPLv3
Author Information
Created by Peter Mosmans. Suggestions and contributions are always welcome.
Contributions by @onny
Installs, configures and hardens Dokuwiki (including plugins and templates)
ansible-galaxy install PeterMosmans.dokuwiki