[[public:heberger_ses_services|< 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 [[https://www.dokuwiki.org/wiki:syntax|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 [[https://www.dokuwiki.org/plugins|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 [[https://en.wikipedia.org/wiki/Markdown|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. [[https://www.dokuwiki.org/install:nginx#dokuwiki_with_nginx_on_ubuntu|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/*'': Require all denied Order allow,deny Deny from all ===== 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 [[https://www.dokuwiki.org/plugins|sur le site officiel]]), quelques uns sont particulièrement utiles: ==== Move ==== Le greffon nommé [[https://www.dokuwiki.org/plugin:move|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 [[https://www.dokuwiki.org/plugin:smtp|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 [[doc:formations:hebergement:service:mailinabox#relai|refuser le relai]] par mailinabox. {{:doc:formations:hebergement:service:dokuwiki_smtp_plugin.png?400|}} ==== Autres plugins ==== Voilà quelques autres plugins intéressants: === Edition === * [[https://www.dokuwiki.org/plugin:prosemirror|prosemirror]] (par l'auteur de Dokuwiki) ou bien [[https://www.dokuwiki.org/plugin:ckgedit|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!) * [[https://www.dokuwiki.org/plugin:edittable|Edittable]] facilite grandement la création de tableaux * [[https://www.dokuwiki.org/plugin:sortablejs|sortablejs]] permet de trier les tables par leur colonnes === Export === * [[https://www.dokuwiki.org/plugin:odt|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 === * [[https://www.dokuwiki.org/plugin:ditaa|Ditaa]] pour générer des schémas en mode "ascii art" * [[https://www.dokuwiki.org/plugin:plantuml|PlantUML]], un parser (écrire de l'UML). :!: ce service passe par un tiers (problème possible de confidentialité, le source est envoyé pour formatage) * [[https://www.dokuwiki.org/plugin:latex|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 === * [[http://www.dokuwiki.org/plugin:addnewpage|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) * [[http://www.dokuwiki.org/plugin:nspages|nspages]] liste les pages d'un //namespace// (pratique pour constituer une table des matières rapidement) * [[http://www.dokuwiki.org/plugin:blog|blog]] ordonne les pages d'un //namespace// sous la forme d'un blog simple * [[https://www.dokuwiki.org/plugin:discussion|Discussion]] ou [[http://www.dokuwiki.org/plugin:comment|comment]] créent des fils de discussion ou permettent les commentaires dans une page wiki * [[https://www.dokuwiki.org/plugin:authgoogle|authgoogle]] requiert un peu de configuration du coté de Google API pour permettre une authentification OAuth dans dokuwiki via un compte google {{:doc:formations:hebergement:service:google-oauth-for-dokuwiki-and-mattermost2.png?40|}}{{:doc:formations:hebergement:service:google-oauth-for-dokuwiki-and-mattermost.png?40|}} === Esthétique === Exemple de thèmes modernes, "responsive" et probablement plus jolis que celui par défaut très "old school": * [[https://www.dokuwiki.org/template:bootstrap3|Bootstrap3]] * [[https://www.dokuwiki.org/template:sprintdoc|sprintDoc]] === 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:google-oauth-for-dokuwiki-1-client-id.png?200|}} {{:doc:formations:hebergement:service:google-oauth-for-dokuwiki-2-consent.png?200|}}