Initial vault setup
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
---
|
||||
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é
|
||||
Reference in New Issue
Block a user