Table des matières
Dokuwiki
C'est un wiki particulièrement léger et fonctionnel, précisément celui que vous lisez en ce moment!
- On y écrit au format textuel brut, selon une syntaxe simple et lisible, qui est ensuite mise en page pour le rendu "web".
- Les articles sont stockés sous une forme de fichiers textes. C'est bien suffisant, c'est très facile à sauvegarder (un simple dossier de donnée), et c'est accesoirement très pratique pour pouvoir les générer automatiquement.
- Il existe de très nombreux plugins pour l'améliorer, y compris esthétiquement, même si cela ne reste pas son fort. Nous en verrons quelques un d'utiles ci-dessous.
La syntaxe d'écriture de dokuwiki est une variante moins classique que le markdown de github, mais ancienne et probablement plus lisible (selon nous).
Installation
Aller sur https://download.dokuwiki.org/, cliquer "Download" et repérer le lien de téléchargement.
Sur le serveur, on récupère le paquetage et on copie son contenu dans l'arborescence du serveur web:
DEST=/var/www/html/wk cd /tmp/ wget https://download.dokuwiki.org/out/dokuwiki-8a269cc015a64b40e4c918699f1e1142.tgz tar xvzf dokuwiki*.tgz mkdir -p $DEST/ cp -a dokuwiki/* $DEST chown -R www-data:www-data $DEST
Note: on a installé dokuwiki ici dans le dossier wk
et non pas dokuwiki
. C'est une (petite) mesure pour réduire les tentatives d'attaques scriptées bêtes et méchantes qui recherchent si vous avez un dokuwiki sur votre site.
Une fois copié, aller sur la page web wk/install.php
de votre site pour finaliser l'installation.
La documentation recommande de détruire le fichier install.php ensuite.
Si vous avez un
403 Forbidden
, vérifier que la ligne location ~ /(conf/|bin/|inc/|install.php) { deny all; }
n'est pas activée dans la configuration du serveur web (cf. configuration nginx).
note: si besoin, la configuration peut aussi être réglée directement dans le fichier conf/dokuwiki.php
. C'est utile par exemple pour faire pointer le $conf['savedir']="./data"
vers /home/dokuwiki_data
par exemple, ce qui le met dans une zone habituellement sauvegardée et éloignée de www-data (sécurisation).
Mise à jour
On recommande quand de mettre à jour régulièrement votre wiki, qui vous dira lorsqu'une nouvelle version est disponible.
Pour se faire, il suffit de répéter l'opération d'installation, en écrasant le contenu de la nouvelle archive (cp -a
du contenu par dessus l'existant, puis un éventuel chmod
), c'est aussi simple que cela!
Contenu
Vos données se trouvent dans le dossier data/
du site. C'est aussi ce dossier qui doit être sauvegardé, dokuwiki assurant une compatibilité parfaite depuis 2005!
Il suffit d'archiver le dossier data/
en oubliant éventuellement le cache, par exemple ainsi:
tar cvzf backup.tgz --exclude cache /var/www/html/wk/data/
Un aspect très intéressant de dokuwiki est qu'il est trivial de générer des pages par un moyen automatisé: il suffit de cibler un dossier et un nom de page (.txt) dans le dossier
data/
pour qu'il soit consultable dans le wiki. C'est très intéressant pour générer des statistiques dynamiques (par exemple via un cron
qui génère votre page d'accueil personnelle).
Je l'utilise par exemple pour publier la documentation de mes API sur un gros projet C++ en le parcourant directement et en extrayant des commentaires spéciaux formattés en markdown. Ainsi à chaque compilation, je publie la documentation en ligne, directement dans le wiki!
Protéger dokuwiki
Pour protéger comme conseillé les zones sensibles du wiki, ajoutez cette section dans la zone VirtualHost de /etc/apache2/sites-enabled/*
:
<Directory ~ "/var/www/html/wk/(bin/|conf/|data/|inc/)"> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </Directory>
Plugins importants
On installe un "greffon" (plugin) depuis la console d'administration web, qui figure en haut à droite de la page dokuwiki. Il faut bien sûr être soi-même dans le groupe admin
, tel qu'indiqué dans la gestion des utilisateurs.
Allez dans le "Gestionnaire d'extensions": le plus simple reste de passer par l'onglet Rechercher et installer…
puis de saisir le nom du greffon intéressant.
Parmis les innombrables plugins (liste complète sur le site officiel), quelques uns sont particulièrement utiles:
Move
Le greffon nommé Move permet de renommer ou déplacer des pages ou des sections (une fois sur la page en question, cliquer "Administrer" et choisissez "Déplacer/Renommer pages et catégories…")
SMTP
Le greffon SMTP va permettre d'envoyer des notifications par emails, tels que la création d'un compte, ou bien un changement sur une page, un abonnement, etc.
Dans l'interface d'aministration, vous aurez certes à configurer les éléments du plugin "SMTP" comme ci-dessous, mais aussi à reporter la même adresse email dans le champ général
Adresse de courriel de l'expéditeur des notifications par courriel du wiki
(typiquement un noreply@monsite.com), afin de ne pas se faire refuser le relai par mailinabox.
Autres plugins
Voilà quelques autres plugins intéressants:
Edition
- prosemirror (par l'auteur de Dokuwiki) ou bien ckgedit (plus efficace mais plus lent) permettent d'éditer interactivement en WYSIWYG (what you see is what you get), et éviter le markdown (c'est utile pour les clients!)
- Edittable facilite grandement la création de tableaux
- sortablejs permet de trier les tables par leur colonnes
Export
- odt permet d'exporter la page pour openoffice (insérez simplement
~~ODT~~
dans la page pour obtenir une icone clicable). Une impression PDF de la page web peut suffir, mais qui est non éditable (PDF) et qui intègre des informations parfois polluante comme l'URL. A noter qu'un couper/coller vers/depuiscgedit
marche particulièremet bien pour conserver le formattage du texte!
"Syntaxes" additionnelles
- Ditaa pour générer des schémas en mode "ascii art"
- PlantUML, un parser (écrire de l'UML).
ce service passe par un tiers (problème possible de confidentialité, le source est envoyé pour formatage)
- LaTeX qui permet d'écrire des formules mathématiques très proprement (si on a installé le gros, mais magnifique outil associé sur le serveur)
Fonctionalités
- addnewpage ajoute un bouton explicite de création de page (sinon il faut créer un lien ou taper une URL inconnus pour cela, c'est moins explicite)
- nspages liste les pages d'un namespace (pratique pour constituer une table des matières rapidement)
- blog ordonne les pages d'un namespace sous la forme d'un blog simple
- Discussion ou comment créent des fils de discussion ou permettent les commentaires dans une page wiki
- authgoogle requiert un peu de configuration du coté de Google API pour permettre une authentification OAuth dans dokuwiki via un compte google
Esthétique
Exemple de thèmes modernes, "responsive" et probablement plus jolis que celui par défaut très "old school":