Files
wiki/Catalogue-Self-Hosted/apps/app-pepperminty-wiki.md
T
2026-06-09 18:40:21 +02:00

141 lines
7.1 KiB
Markdown

---
title: Pepperminty Wiki
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, wiki, php, single-file, minimaliste, mpl, markdown, modules]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Wiki, https://github.com/sbrl/Pepperminty-Wiki, https://peppermint.mooncarrot.space/]
---
# 🌿 Pepperminty Wiki
> **Un wiki dans une boîte** : un moteur wiki PHP complet contenu dans un seul fichier, modulaire, sans base de données, idéal pour un wiki personnel léger ou un projet éducatif.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [peppermint.mooncarrot.space](https://peppermint.mooncarrot.space/) |
| **GitHub** | [sbrl/Pepperminty-Wiki](https://github.com/sbrl/Pepperminty-Wiki) |
| **Licence** | MPL-2.0 |
| **Langage** | PHP |
| **Étoiles GitHub** | 205 ⭐ |
| **Dernière MAJ** | 2023-02-18 (v0.24) — commits actifs en 2026 |
| **Catégorie** | [[cat-wiki]] |
## 📝 Description
**Pepperminty Wiki** est né d'un défi : *"un wiki complet dans un seul fichier PHP"*. Inspiré par [Minty Wiki](https://github.com/am2064/Minty-Wiki) d'am2064, le projet a évolué vers une **architecture modulaire** où le cœur reste compact mais où les fonctionnalités s'ajoutent via des modules chargeables (`feature-recent-changes.php`, `feature-tags.php`, etc.). Cette approche "wiki in a box" rend Pepperminty particulièrement adapté à un hébergement mutualisé bas de gamme, un Pi, ou un usage éducatif.
L'application est écrite en **PHP 93% pur** (le reste étant CSS et scripts utilitaires), sous licence **MPL-2.0**, ce qui impose de publier les modifications du code source lui-même mais laisse une grande liberté pour le contenu. Les fonctionnalités natives incluent : **upload de fichiers**, **page d'aide dynamique**, **historique de révisions** avec **restauration à une version antérieure**, **tags** sur les pages, **watchlists utilisateur**, **galerie de thèmes** (depuis v0.20) et un système de **modules activables à la demande**. Le Markdown est supporté nativement, et la syntaxe de wiki peut être étendue par modules.
L'auteur (@sbrl, Starbeamrainbowlabs) est très actif sur les aspects sécurité (un fichier `SECURITY.md` décrit la procédure de divulgation et un canal email dédié `security [at] starbeamrainbowlabs [dot] com`). Le projet a un public de niche — pédagogique, expérimental, et utile pour qui veut un wiki **léger, lisible, modifiable et sans infrastructure**. Il est aussi à l'origine d'un **client Android** en bêta sur Google Play et sert de base à de petits projets communautaires (ex. WikiProject Paranormal). Pour un wiki d'entreprise ou collaboratif moderne, BookStack, Wiki.js ou Outline restent des choix plus appropriés ; Pepperminty brille dans le **niche "wiki personnel minimaliste et pédagogique"**.
## 🚀 Installation
### Option recommandée : PHP + serveur web
Pepperminty Wiki se déploie sur n'importe quel serveur PHP, sans base de données.
```bash
# Cloner le dépôt
git clone https://github.com/sbrl/Pepperminty-Wiki.git
cd Pepperminty-Wiki
# Builder le wiki (combine les modules + le core en un fichier index.php)
php build.php
# Ou : make build
```
L'image Docker est aussi disponible :
```yaml
# docker-compose.yml
services:
pepperminty:
image: sqlatenwiki/peppermintywiki:latest
container_name: pepperminty
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./data:/wiki-data
```
> L'image est **expérimentale** mais fonctionnelle. Pour la prod, le déploiement sur un **PHP-FPM + Nginx** classique est recommandé.
### Option 2 : Hébergement mutualisé
Pepperminty fonctionne sur un simple **LAMP** ou même un mutualisé OVH/Infomaniak avec PHP 7.4+ :
```bash
# Sur le serveur
git clone https://github.com/sbrl/Pepperminty-Wiki.git wiki/
cd wiki
php build.php
# Pointer le vhost sur le dossier racine du wiki
```
### Configuration
Le fichier `peppermint-config-info.php` documente toutes les options. La configuration se fait principalement via le panneau admin une fois le wiki démarré.
## ⚙️ Configuration
- **`peppermint-config-info.php`** : documentation des options de config.
- **`peppermint.guiconfig.json`** : configuration GUI au format JSON.
- **Modules** : situés dans `modules/`, activables depuis l'admin. Chaque module ajoute une fonctionnalité (recent changes, tags, watchlists, etc.).
- **Thèmes** : situés dans `themes/`, sélectionnables depuis l'admin (galerie de thèmes depuis v0.20).
- **Build** : `build.php` ou `build.sh` combinent core + modules en un `index.php` unique.
- **Sauvegardes** : un `tar` du dossier suffit (fichiers `.md` + pièces jointes + config).
- **Pas de base de données** : tout est en fichiers plats.
## 🔄 Alternatives
### Open Source
- [[app-dokuwiki]] — Wiki PHP flat-file historique, plus mature
- [[app-wikidocs]] — Wiki PHP flat-file moderne WYSIWYG
- [[app-otter-wiki]] — Wiki Python/Git plus moderne
- [[app-leafwiki]] — Wiki Go single-binary minimaliste
- [[app-wiki-go]] — Wiki Go plus riche avec Kanban
- **DokuWiki** — Référence des wikis PHP flat-file
- **TiddlyWiki** — Wiki JavaScript single-file dans le navigateur
### Propriétaires
- **Notion** — Workspace moderne
- **Confluence** — Wiki d'entreprise
- **Evernote** — Notes et wiki personnel
- **Apple Notes** — Notes iCloud (fermé)
## 🔐 Sécurité
-**Pas de base de données** : surface d'attaque SQL nulle.
-**MPL-2.0** : licence de fichier copyleft, encourage la divulgation des patches.
-**SECURITY.md** : procédure de divulgation claire, email dédié, **ne pas ouvrir d'issue publique** pour les failles.
- ⚠️ **Filtrage upload** : valider les types MIME des fichiers uploadés (modules d'upload fournis, à configurer).
-**HTTPS obligatoire** via reverse proxy.
-**Pas de JS/eval** : le PHP est procédural, peu d'opportunités d'injection complexe.
- ⚠️ **Permissions fichiers** : restreindre l'écriture sur le dossier de données.
-**Mises à jour** : suivre les releases, le projet reçoit des commits de sécurité en 2026 (correction unsafe moves sur fichiers attachés, npm audit fix).
- ⚠️ **Pas d'auth externe** : pas d'OIDC/LDAP nativement, comptes stockés localement.
## 📚 Ressources
- [Dépôt GitHub sbrl/Pepperminty-Wiki](https://github.com/sbrl/Pepperminty-Wiki)
- [Site vitrine Mooncarrot Space](https://peppermint.mooncarrot.space/)
- [WikiMatrix - Pepperminty Wiki](https://www.wikimatrix.org/show/pepperminty-wiki)
- [Image Docker sqlatenwiki/peppermintywiki](https://hub.docker.com/r/sqlatenwiki/peppermintywiki)
- [Documentation Getting Started](https://starbeamrainbowlabs.com/labs/peppermint/__nightdocs/04-Getting-Started.html)
- [Client Android en bêta](https://play.google.com/apps/testing/com.sbrl.peppermint)
## Pages Liées
- [[cat-wiki]] — Vue d'ensemble de la catégorie Wiki
- [[app-wikidocs]] — Cousin PHP flat-file plus moderne
- [[app-leafwiki]] — Wiki single-binary Go
- [[app-otter-wiki]] — Wiki Python/Git
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Bonnes pratiques de sécurité