152 lines
6.6 KiB
Markdown
152 lines
6.6 KiB
Markdown
---
|
|
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](https://www.wikidocs.app/) |
|
|
| **GitHub** | [Zavy86/WikiDocs](https://github.com/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
|
|
|
|
```yaml
|
|
# 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 = un `tar` de ce dossier.
|
|
|
|
### Option 2 : Docker run (test rapide)
|
|
|
|
```bash
|
|
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)
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```nginx
|
|
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.css` pour 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 (`tar` du dossier `datasets/`), à 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](https://www.wikidocs.app/)
|
|
- [Dépôt GitHub Zavy86/WikiDocs](https://github.com/Zavy86/WikiDocs)
|
|
- [Démo en ligne](http://demo.wikidocs.app) (code d'accès : `demo`)
|
|
- [Vidéo de présentation](https://youtu.be/x2nVq9RbG54)
|
|
- [Changelog v1.0.86 sécurité](https://github.com/Zavy86/WikiDocs/releases)
|
|
- [Sponsoriser le projet](https://github.com/sponsors/Zavy86)
|
|
|
|
## 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é
|