~~NOCACHE~~ ~~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) {{ https://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/CC-BY-SA_icon.svg/200px-CC-BY-SA_icon.svg.png }} 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 ? ==== * [[wp>fr:Système_de_gestion_de_contenu|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 ==== * cf. [[https://www.wikimatrix.org/]] * 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 XML * forum * chat ==== 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 ==== * [[https://www.dokuwiki.org/dokuwiki]] * [[https://doc.ubuntu-fr.org/]] * [[https://www.splitbrain.org/]] * [[http://www.loligrub.be/wiki/]] * [[https://dvillers.umons.ac.be/wiki/start]] * ... ===== 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 : [[wp>fr:Langage_de_balisage_léger|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) ==== * [[https://www.dokuwiki.org/start?id=fr:fullscreen_mediamanager]] * [[https://www.dokuwiki.org/start?id=fr:media_manager]] ===== 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 !!) * [[https://pandoc.org/try/]] ===== Administration (level 2) ===== * sauvegardes du site * mises à jour * copie * purge du cache, cleanup * installation d'extensions * Apparence (thèmes) * https (Apache2, SSL,... ) [[https://certbot.eff.org/|certbot]] ===== Extensions ===== * //cf.// [[floss:dokuwiki#extensions|"mes" extensions]] * Forme * extension de la syntaxe * inclusion d'éléments * Fonctionnalités additionnelles * administration, automatisation * ?? Dates, compatibilités,... ?? ==== Quelques extensions ==== * LaTeX * wrap * ... * [[:dokuwiki_extensions]] ===== Thèmes (templates) ===== * testés (et approuvés) * thème par défaut * [[https://www.dokuwiki.org/template:bootstrap3|bootstrap3]] avec par exemple united de [[https://bootswatch.com/]] * Extension [[https://www.dokuwiki.org/plugin:bootswrapper]] * Responsive Design * [[https://www.dokuwiki.org/template:sprintdoc|sprintdoc]] ? ===== 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 * [[https://github.com/fmenabe/python-dokuwiki|python-dokuwiki]]