Table des matières
~~REVEAL transition=convex&controls=1&show_progress_bar=1&build_all_lists=1&open_in_new_window=1~~
DokuWiki, un wiki "One size fits all"
Didier Villers (UMONS & ASBL LoLiGrUB)
20 février 2020, conférence “Jeudis du Libre”
Disclaimer
- pas de connaissance php
- pas consultant DokuWiki
- utilisateur depuis près de 10 ans
Introduction
Un wiki, pour quoi faire ?
- Système de gestion de contenu (Content Management System, CMS)
- Wiki : création, modification et présentation (web)
- Syntaxe simple (langage de balises)
- Travail collaboratif (collègues, étudiants,…)
- Outils d'administration (extensions, mises à jour, paramétrisation)
- Gestion de versions, gestionnaire de fichiers intégré
- Recherche indexée sur l'ensemble du site
Pourquoi DokuWiki
- Logiciel sous licence libre (GPL2), gratuit
- Classique : GNU/Linux - Apache2 - PHP
- Pas de DB (fichiers textes)
- Contrôle des accès (ACL)
- Conçu pour les groupes, équipes
- OK pour un usage individuel ou des pages publiques
Les concurrents
- Mediawiki (php, DB,
ACL) - Tiki wiki, Foswiki, moinmoin, BookStack, TWiki
- Confluence (Atlassian), Drupal Wiki
- TiddlyWiki, ZimWiki (personnels)
Pourquoi DokuWiki (2)
- Projet à maturité (2004)
- Performances (» 10⁵ pages, » 10⁴ pagepageviews/day)
- Forte implication du créateur (Andreas Gohr)
- Communauté, forum, créateurs d'extensions
- Nombreux consultants (premium : CosmoCode.de)
- 2726 stars on GitHub
- (modules d'authentification)
Limitations
- Pas d'éditions simultanées
- indexation et recherches limitées
- statistiques (
pages populaires) export XMLforumchat
DW comme alternative à d'autres logiciels
- Pour des fonctionnalités réduites, basiques :
- evernote/onenote
- office365/googledocs
- MS Office, Libreoffice, LaTeX
- doodle, framadate, limesurvey
- Git/GitHub, wordpress
- lecteur RSS, galerie photo, GED,…
Exemples de sites
- …
Installation et administration
Préambule : le serveur
- Serveur virtuel (VirtualBox)
- Raspberry Pi, certains NAS
- PC/portable, serveur classique
- Hébergement dédié, mutualisé,…
- Testé : Ubuntu server 18.04 LTS
- OpenSSH server
- Serveur LA(M)P
- msmtp (emails)
- module “rewrite” de Apache2
En pratique
sudo apt install apache2 php libapache2-mod-php
sudo apt install php-curl php-gd php-intl ...
... php-json php-mbstring php-xml php-zip
sudo usermod -a -G www-data admin_username
sudo apt install msmtp msmtp-mta
sudo nano /etc/msmtprc
sudo a2enmod rewrite
sudo systemctl restart apache2
Cf. https://dvillers.umons.ac.be/wiki/floss:config_ubuntu_server
Installer DokuWiki
- Connexion et identification sur le serveur :
- Linux :
ssh username@dns
ssh username@ip_address
- Windows : terminal via le programme PuTTY
Installer DokuWiki (2)
cd /var/www/html sudo mkdir wiki00 cd wiki00 sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz sudo tar -xzvf dokuwiki-stable.tgz --strip-components=1 sudo rm dokuwiki-stable.tgz sudo chown -R www-data:www-data /var/www/html/wiki00 cd /var/www/html/wiki00 (si on n'y était pas) sudo find . ! -type d -exec chmod 660 {} \; sudo find . -type d -exec chmod 770 {} \;
Installer DokuWiki (3 : initialisation)
- navigateur web : http://dns/wiki00/install.php
- Options :
- Wiki Name
- Enable ACL
- Superuser, Full Name, E-Mail, Password
- Initial ACL policy
- Allow users to register themselves
sudo rm install.php
Installer DokuWiki (4 : premiers réglages)
- menu “Administrer”
- Paramètres de configuration
- langue de l’interface → fr
- mode de création des répertoires : 02770
- mode de création des fichiers : 0660
- Actions à désactiver : “s’enregistrer”
- délai avant indexation : 60*60*24*5 → 60*5
- notifications → email
- activation (?) de l’abonnement aux pages + email expéditeur
Répertoires du wiki sur le serveur
- bin - outils/scripts
- inc - le code php
- lib/exe - programmes accédés via la navigation
- lib/images - images du wiki (icons, smileys, toolbar icons,…)
- lib/plugins - extensions installées
- lib/scripts - codes JavaScripts
- lib/styles - feuilles de style CSS
- lib/tpl - templates (thèmes visuels)
Répertoires (suite), à sauvegarder !
- data/pages - pages actuelles
- data/meta - méta-informations sur les pages (créateurs, abonnés,…)
- data/media - fichiers media actuel (images, PDFs, …)
- data/media_meta - métadonnées des media
- data/attic - anciennes versions des pages
- data/media_attic - anciennes versions des media
- conf - réglages de configuration
Écrire
Pages et syntaxe d'écriture
- Pages : Langage de balisage léger
- Syntaxe DokuWiki :
- en anglais : https://www.dokuwiki.org/wiki:syntax
- en français : https://www.dokuwiki.org/start?id=fr:wiki:syntax
- Titres, gras, italique, puces, puces numérotées, liens internes, liens web, encadrés spécifiques, code,…
- Créer une page : donner un lien inexistant
- Éditer une page : outil “Modifier cette page”
- Supprimer une page : “Modifier cette page” → tout effacer, puis “Enregistrer”
Pages et syntaxe d'écriture (2)
- Mise en forme de texte basique
- Liens (externes, internes,…)
- Découpage en sections
- Images et autres fichiers Médias pris en charge
- Listes
- Citations, Tableaux
- Notes, blocs, code,…
- Agrégation de fils RSS
- Sidebar : juste la créer…
- …
Structure en namespaces
- Pages organisées en structure arborescente
- répertoires successifs = “namespaces” (et subnamespaces)
- séparateur → “:”
- navigation hypertextuelle entre les pages
Utilisateurs, groupes, ACL
utilisateurs
- connexion (utilisateurs enregistrés)
- Création de codes utilisateurs (admin)
- Appartenance à un ou des groupes
Groupes d'utilisateurs
- partagent les mêmes droits
- préfixé par le caractère @
- groupes spéciaux :
- @ALL (tout le monde, même non connectés)
- @user (tous les inscrits)
- @admin
ACL (Access Control List)
Restrictions d'accès liées aux pages ou aux namespaces
- aucune (none)
- lire (read)
- modifier (edit)
- créer (create)
- téléverser sur le serveur (upload)
- effacer (delete)
- administrer (admin)
ACL (2)
- Accès déterminés pour des utilisateurs ou groupes d'utilisateurs
- groupe @ALL → limiter
- groupes sélectionnés → autoriser
- Détails : https://www.dokuwiki.org/fr:acl
Le gestionnaire Multimédia
- Sauvegarde et affichage : images, sons et vidéos
- Interaction classiques (démarrer, arrêter, défiler)
- Autres fichiers : pdfs, docs, zips,…
- Insertion en cours d'édition
- Gestionnaire Multimédia en mode pleine page
- Documents → arborescence identique aux namespaces des pages
- réglages de l'affichage (taille et position)
Le gestionnaire Multimédia (2)
Que fait-on de mieux grâce à DokuWiki
- Écriture rapide, simple, réutilisable
- Accès via tout navigateur
- Travail collectif, accès contrôlés
- Indexation et recherche sur l'ensemble du site
- Importation - exportation (merci Pandoc !!)
Administration (level 2)
- sauvegardes du site
- mises à jour
- copie
- purge du cache, cleanup
- installation d'extensions
- Apparence (thèmes)
- https (Apache2, SSL,… ) certbot
Extensions
- cf. "mes" extensions
- Forme
- extension de la syntaxe
- inclusion d'éléments
- Fonctionnalités additionnelles
- administration, automatisation
- ?? Dates, compatibilités,… ??
Quelques extensions
- LaTeX
- wrap
- …
Thèmes (templates)
- testés (et approuvés)
- thème par défaut
- bootstrap3 avec par exemple united de https://bootswatch.com/
- Responsive Design
Quelques "plus", ...
- indexation par les moteurs de recherche
- plugin:farmer → ferme de wiki (animals)
- Réglages fins :
- Types MIME
- Jolis URL
- logos, favicon
- fichier entities.conf
- XML-RPC