Outils pour utilisateurs

Outils du site


doc:formations:hebergement:service:dokuwiki

< Retour à l'index

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/depuis cgedit 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":

OAuth google

Il est possible de s'identifier sur Dokuwiki via son compte Google. Il faut pour cela avoir créée une autorisation préalable pour Dokuwiki chez Google. Ci-dessous les deux écrans pour le wiki.kideba.com:

doc/formations/hebergement/service/dokuwiki.txt · Dernière modification : 2020/07/17 08:40 de jeremie