6.6 KiB
title: WikiDocs created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, wiki, php, flat-file, markdown, multi-langue, wysiwyg, katex, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Wiki, https://github.com/Zavy86/WikiDocs, https://www.wikidocs.app/]
📗 WikiDocs
Moteur wiki flat-file PHP sans base de données : un wiki léger qui stocke tout en Markdown sur disque, avec éditeur WYSIWYG, support multi-langue, mathématiques KaTeX et révisions illimitées.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | wikidocs.app |
| GitHub | Zavy86/WikiDocs |
| Licence | MIT |
| Langage | PHP |
| Étoiles GitHub | 497 ⭐ |
| Dernière MAJ | 2026-05-31 (v1.0.89) |
| Catégorie | cat-wiki |
📝 Description
WikiDocs se présente comme "un moteur wiki flat-file Markdown sans base de données". Tout le contenu est stocké en fichiers .md bruts sur le disque, ce qui rend les sauvegardes triviales (tar du dossier datasets/) et la migration vers un autre système possible à tout moment — pas de vendor lock-in, pas de base PostgreSQL à maintenir. Le projet est écrit en PHP procédural/OOP sans framework lourd, ce qui le rend très rapide à déployer.
L'éditeur WYSIWYG intégré transforme WikiDocs en alternative crédible aux wiki Markdown "code-first" : on n'a pas besoin de connaître la syntaxe Markdown pour rédiger. Les pages supportent les révisions illimitées, les pièces jointes, les uploads d'images (y compris depuis le presse-papier), les namespaces pour organiser l'arborescence, et un index + sitemap auto-générés. WikiDocs intègre aussi KaTeX pour les formules mathématiques, le syntax highlighting pour le code, le dark mode et un support multi-langue complet (italien, anglais, allemand, etc.).
Côté sécurité, WikiDocs a fait l'objet d'un durcissement majeur en 2026 (v1.0.86+) corrigeant du XSS stocké, du CSRF et des vulnérabilités de type path traversal. Le projet bloque désormais les tags HTML dangereux (<script>, <iframe> non approuvés, <object>, <form>, etc.) via une allowlist et un sanitizer ciblé. C'est un wiki particulièrement adapté aux utilisateurs qui veulent la simplicité d'un flat-file combinée à un rendu visuel moderne et un multilinguisme natif, sans la complexité d'un Wiki.js ou d'un BookStack.
🚀 Installation
Option recommandée : Docker
# docker-compose.yml
services:
wikidocs:
image: zavy86/wikidocs
container_name: wikidocs
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
ports:
- "8090:80"
volumes:
- ./datasets:/datasets
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3
L'image tourne sous Apache + PHP. Le dossier
datasets/contient toutes les pages, configurations, images et pièces jointes : un backup = untarde ce dossier.
Option 2 : Docker run (test rapide)
docker run -d -p 80:80 --name wikidocs \
-v /path/to/datasets:/datasets \
-e PUID=1000 -e PGID=1000 \
zavy86/wikidocs
Option 3 : Installation manuelle (LAMP)
git clone https://github.com/Zavy86/wikidocs.git
cd wikidocs
cp config.sample.inc.php datasets/config.inc.php
# Éditer datasets/config.inc.php (CHEMIN, paramètres)
# Servir le dossier public/ avec Apache (mod_rewrite requis) ou Nginx
Configuration Nginx recommandée :
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?doc=$1 last;
}
try_files $uri $uri/ =404;
}
Configuration initiale
Au premier accès, exécuter setup.php (auto-supprimé après) ou éditer manuellement datasets/config.inc.php.
⚙️ Configuration
- Fichier
datasets/config.inc.php: configuration centrale (chemin, langue, debug, etc.). - Multi-langue : fichiers de traduction dans
locales/, langue par défaut configurable. - Namespaces : préfixes de dossiers (ex.
docs/,recettes/) pour organiser les pages. - Custom CSS : déposer un fichier
styles/styles-custom.csspour surcharger le thème. - ALLOWED_IFRAME_HOSTS : variable admin pour autoriser YouTube/Vimeo par défaut.
- Sauvegardes :
cp -r datasets/ backup-$(date +%F)/et le wiki est sauvegardé.
🔄 Alternatives
Open Source
- app-dokuwiki — Wiki PHP flat-file historique et ultra-mature
- app-wiki-go — Wiki Go flat-file plus moderne avec Kanban
- app-leafwiki — Wiki Go single-binary minimaliste
- app-otter-wiki — Wiki Python stocké en Git
- app-pepperminty-wiki — Wiki PHP single-file
- Raneto — Knowledge base Markdown en Node.js
- Wiki.js — Wiki Node.js/Vue, plus complet
Propriétaires
- Notion — Wiki/notes moderne
- Confluence — Wiki d'entreprise
- Slab — Knowledge base d'équipe
- Dropbox Paper — Documents collaboratifs
🔐 Sécurité
- ✅ Flat-file : pas de base de données = surface d'attaque réduite (pas d'injection SQL).
- ✅ Durcissement 2026 : XSS, CSRF, path traversal corrigés en v1.0.86+ ; sanitizer HTML avec allowlist.
- ✅ HTTPS obligatoire via reverse proxy (Nginx, Caddy, Traefik).
- ✅ Permissions fichiers : PUID/PGID pour ne pas faire tourner l'app en root.
- ⚠️ Allowlist iframe : ne pas ajouter de domaines non vérifiés dans
ALLOWED_IFRAME_HOSTS. - ✅ Sauvegardes : triviales (
tardu dossierdatasets/), à automatiser. - ✅ Mises à jour : le projet sort régulièrement des patchs de sécurité, suivre les releases.
- ⚠️ Le debug doit rester désactivé en production (paramètre dans
config.inc.php).
📚 Ressources
- Site officiel WikiDocs
- Dépôt GitHub Zavy86/WikiDocs
- Démo en ligne (code d'accès :
demo) - Vidéo de présentation
- Changelog v1.0.86 sécurité
- Sponsoriser le projet
Pages Liées
- cat-wiki — Vue d'ensemble de la catégorie Wiki
- app-otter-wiki — Wiki Python/Git, autre approche flat-file
- app-dokuwiki — Wiki PHP flat-file historique
- app-pepperminty-wiki — Wiki PHP single-file
- recettes-docker-compose — Templates Docker
- securisation-home-lab — Bonnes pratiques de sécurité