152 lines
6.8 KiB
Markdown
152 lines
6.8 KiB
Markdown
---
|
|
title: DokuWiki
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, wiki, documentation, php, flat-file, simple, veterand, docker]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=wiki]
|
|
---
|
|
|
|
# 🏛️ DokuWiki
|
|
|
|
> Wiki PHP ultra-léger et éprouvé, sans base de données : tout est stocké dans des fichiers texte sur le disque. Le vétéran des wikis self-hosted, en production depuis 2004, utilisé par d'innombrables organisations.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [dokuwiki.org](https://www.dokuwiki.org/) |
|
|
| **GitHub** | [splitbrain/dokuwiki](https://github.com/splitbrain/dokuwiki) |
|
|
| **License** | GPL-2.0 |
|
|
| **Langage** | PHP |
|
|
| **Étoiles** | ⭐ 919 |
|
|
| **Dernière MAJ** | 2026-05-30 |
|
|
| **Catégorie** | [[cat-wiki]] |
|
|
|
|
## Description
|
|
|
|
DokuWiki est l'un des **plus anciens projets de wiki open source encore activement maintenus**. Créé par Andreas Gohr en 2004, il est utilisé par la NASA, l'OTAN, la Commission européenne, des universités, des entreprises et des particuliers à travers le monde. Sa longévité est sa meilleure publicité.
|
|
|
|
Le principe est d'une simplicité désarmante : **pas de base de données**, tout le contenu est stocké sous forme de fichiers texte (`.txt` avec une syntaxe wiki maison) dans le dossier `data/pages/`. Cette architecture rend les backups triviaux (un simple `tar` du dossier) et la migration entre serveurs instantanée. Côté serveur, il suffit de **PHP** (≥ 8.1) et d'un serveur web (Apache, Nginx, Lighttpd).
|
|
|
|
Les fonctionnalités modernes sont toutes là malgré la simplicité : authentification utilisateurs/groupes, ACL fines par namespace et par page, recherche full-text, versioning, multi-langue, namespaces hiérarchiques, plugins (plus de 1500 disponibles sur dokuwiki.org), thèmes, éditeur WYSIWYG optionnel, sauvegardes automatiques. La syntaxe wiki est volontairement simple et lisible.
|
|
|
|
DokuWiki est idéal pour qui veut un **wiki qui juste marche**, sans s'encombrer d'une stack moderne (Node, React, base SQL). Pour un wiki plus moderne avec WYSIWYG temps réel, on préférera [[app-wiki-js]] ou [[app-docmost]]. Pour un wiki single-file sans serveur, [[app-tiddlywiki]]. Pour un wiki Markdown minimaliste, [[app-raneto]].
|
|
|
|
## Installation
|
|
|
|
### Option 1 : Docker Compose
|
|
|
|
L'image `linuxserver/dokuwiki` (LSIO) est la plus populaire : elle inclut Apache + PHP, le tout sur Alpine Linux.
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
dokuwiki:
|
|
image: lscr.io/linuxserver/dokuwiki:latest
|
|
container_name: dokuwiki
|
|
restart: unless-stopped
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/Paris
|
|
volumes:
|
|
- dokuwiki-config:/config
|
|
- dokuwiki-data:/data
|
|
ports:
|
|
- "8080:80"
|
|
# optionnel : derrière un reverse proxy, on retire le mapping de port
|
|
|
|
volumes:
|
|
dokuwiki-config:
|
|
dokuwiki-data:
|
|
```
|
|
|
|
L'interface d'admin est accessible sur `http://localhost:8080/install.php` à la première installation (puis à supprimer).
|
|
|
|
### Option 2 : Installation manuelle (LAMP/LEMP)
|
|
|
|
```bash
|
|
# 1) Récupérer la dernière version stable
|
|
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
|
|
tar -xzf dokuwiki-stable.tgz -C /var/www/
|
|
mv /var/www/dokuwiki-* /var/www/dokuwiki
|
|
|
|
# 2) Droits
|
|
chown -R www-data:www-data /var/www/dokuwiki
|
|
|
|
# 3) VirtualHost Apache
|
|
<VirtualHost *:80>
|
|
ServerName wiki.example.com
|
|
DocumentRoot /var/www/dokuwiki
|
|
<Directory /var/www/dokuwiki>
|
|
AllowOverride All
|
|
Require all granted
|
|
</Directory>
|
|
</VirtualHost>
|
|
```
|
|
|
|
Prérequis : **PHP 8.1+** avec extensions `mbstring`, `xml`, `zlib`, `intl` (recommandé).
|
|
|
|
## Configuration
|
|
|
|
La configuration principale se fait dans le panneau d'admin (en haut à droite, après login admin) :
|
|
|
|
- **General** : titre, sous-titre, logo, langue (français inclus), timezone, URL canonique.
|
|
- **Users** : créer des utilisateurs, groupes, définir la politique de mots de passe.
|
|
- **Access Control List** : ACL par namespace, page, groupe. Très puissant.
|
|
- **Plugins** : `Admin → Extension Manager` permet d'installer/maj les plugins en un clic depuis dokuwiki.org.
|
|
- **Thèmes** : `Admin → Template chooser`, plus d'une centaine de thèmes disponibles.
|
|
- **Sauvegardes** : `Admin → Backup & Restore` (exporte un tar.gz du dossier `data/`).
|
|
- **Configuration brute** : via le fichier `conf/local.php` (généré après la première config GUI) ou `conf/dokuwiki.php` (defaults).
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
|
|
- [[app-wiki-js]] — Wiki Node.js moderne, WYSIWYG, Git backend.
|
|
- [[app-docmost]] — Wiki collaboratif temps réel moderne.
|
|
- [[app-tiddlywiki]] — Wiki single-file JavaScript, sans serveur.
|
|
- [[app-raneto]] — Wiki Markdown Node, plus minimaliste.
|
|
- [[app-xwiki]] — Java, très extensible, plus lourd.
|
|
- [[app-docusaurus]] — Plutôt pour publier en statique.
|
|
- [[app-mkdocs]] — Doc statique Python.
|
|
- **BookStack** — PHP/MySQL, ergonomique, plus moderne dans l'UX.
|
|
- **MediaWiki** — L'autre vétéran (motor de Wikipédia), plus complexe.
|
|
|
|
### Propriétaires (ce que DokuWiki remplace)
|
|
|
|
- **Confluence** — DokuWiki est plus léger, sans la lourdeur d'Atlassian.
|
|
- **Notion** — Pour un wiki simple et durable, DokuWiki est imbattable.
|
|
- **Microsoft SharePoint Wiki** — DokuWiki est gratuit, simple, et tient 20 ans.
|
|
- **MediaWiki-hosted (Fandom, Wikia)** — DokuWiki pour un wiki privé.
|
|
- **Atlassian Jira Wiki** — Dans les projets où Confluence est trop lourd.
|
|
|
|
## Sécurité
|
|
|
|
- ✅ **PHP mature, auditée**, mises à jour régulières (reste sur la dernière stable LTS).
|
|
- ✅ **ACL très fines** par namespace, page, groupe : à configurer soigneusement pour limiter l'exposition.
|
|
- ✅ **HTTPS obligatoire** derrière reverse proxy (Caddy/Traefik/Nginx) + LetsEncrypt.
|
|
- ✅ DokuWiki a un **système anti-spam/anti-bruteforce** intégré (captcha, ban, rate-limit).
|
|
- ⚠️ Désactiver/renommer `install.php` après la première configuration.
|
|
- ⚠️ Protéger le dossier `data/` et `conf/` au niveau du serveur web (Nginx/Apache deny rules).
|
|
- ⚠️ Les **plugins tiers** sont puissants mais exposent du code : ne charger que des plugins maintenus, mis à jour.
|
|
- ✅ **Backups** : un simple `tar` du dossier `data/` (et `conf/`) suffit, à automatiser via cron/restic/Borg.
|
|
- ⚠️ Activer les logs d'accès et auditer périodiquement les comptes actifs.
|
|
|
|
## Ressources
|
|
|
|
- [Site officiel DokuWiki](https://www.dokuwiki.org/)
|
|
- [Manuel DokuWiki](https://www.dokuwiki.org/manual)
|
|
- [Dépôt GitHub splitbrain/dokuwiki](https://github.com/splitbrain/dokuwiki)
|
|
- [Catalogue de plugins](https://www.dokuwiki.org/plugins)
|
|
- [Communauté (forum, IRC, mailing-list)](https://www.dokuwiki.org/community)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-wiki]] — Vue d'ensemble de la catégorie Wiki
|
|
- [[app-wiki-js]] — Wiki Node.js moderne
|
|
- [[app-tiddlywiki]] — Wiki single-file
|
|
- [[app-raneto]] — Wiki Markdown Node
|
|
- [[recettes-docker-compose]] — Templates Docker partagés
|