7.4 KiB
title: LeafWiki created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, wiki, golang, single-binary, sqlite, markdown, minimaliste, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Wiki, https://github.com/perber/leafwiki, https://leafwiki.com/]
🌿 LeafWiki
Wiki single-binary en Go, sans base externe : un binaire autonome avec SQLite et Markdown sur disque, pensé pour les ingénieurs et self-hosters qui veulent une documentation structurée et durable sans Node.js, Redis ni Postgres.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | leafwiki.com |
| GitHub | perber/leafwiki |
| Licence | MIT |
| Langage | Go |
| Étoiles GitHub | 356 ⭐ |
| Dernière MAJ | 2026-06-04 (v0.10.2) |
| Catégorie | cat-wiki |
📝 Description
LeafWiki est un wiki self-hosted qui assume pleinement la philosophie "une documentation long-terme doit être lisible en dehors de l'application". Concrètement : le contenu des pages est stocké comme de simples fichiers .md sur disque, et seule la métadonnée (utilisateurs, tags, index de recherche) est dans un fichier SQLite embarqué. Pas de base externe, pas de runtime Node.js, pas de Redis : un seul binaire Go fait tout. Les sauvegardes sont un simple cp -r du dossier de données.
L'auteur le destine explicitement à ceux qui trouvent Wiki.js, Outline, BookStack ou XWiki "trop à opérer" pour leur besoin. L'application fonctionne sur Linux, macOS, Windows et Raspberry Pi (x86_64 et ARM64), ce qui en fait un choix naturel pour les homelabs, les notebooks d'ingénieur ou les runbooks d'équipe. La navigation arborescente explicite (vs. flux de notes à plat) est un parti-pris fort : on pense en folders, pas en feed, à la manière d'un Obsidian ou d'un Emacs Org-mode.
Côté fonctionnalités, LeafWiki offre une recherche full-text sur titres et contenu avec filtrage par tags, des backlinks détectés automatiquement par page, un statut de lien (incoming, outgoing, broken), un éditeur Markdown avec live preview, autocomplétion des liens internes et raccourcis clavier. Les extensions Markdown supportées incluent tables, task lists, footnotes, callouts (:::info, :::warning), Mermaid et HTML inline sanitizé. La gestion des utilisateurs couvre trois rôles (admin, editor, viewer) avec un mode lecture publique + édition authentifiée. Un importeur ZIP permet de migrer depuis Obsidian ou un dépôt Markdown existant. LeafWiki n'est pas conçu pour l'édition collaborative temps réel (pas de CRDT) et n'est pas un remplacement de Notion/Confluence : c'est un outil de documentation personnelle ou de petite équipe qui privilégie la sobriété opérationnelle.
🚀 Installation
Option recommandée : Docker Compose
# docker-compose.yml
services:
leafwiki:
image: ghcr.io/perber/leafwiki:latest
container_name: leafwiki
user: "1000:1000"
restart: unless-stopped
ports:
- "8080:8080"
environment:
- LEAFWIKI_JWT_SECRET=change-me-long-random-secret-32-bytes
- LEAFWIKI_ADMIN_PASSWORD=change-me-strong-password
- LEAFWIKI_ALLOW_INSECURE=true
volumes:
- ./leafwiki-data:/app/data
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/"]
interval: 30s
timeout: 10s
retries: 3
⚠️
LEAFWIKI_ALLOW_INSECURE=trueest obligatoire en HTTP (pour le développement). En HTTPS via reverse proxy, retirer cette option et s'assurer que le proxy transmet bienX-Forwarded-Proto: https.
Option 2 : Script d'installation Linux (systemd)
sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/perber/leafwiki/main/install.sh)"
Installe un service systemd et le binaire dans /opt/leafwiki. Mode non-interactif disponible avec --env-file.
Option 3 : Binaire direct
Télécharger depuis GitHub Releases et lancer :
./leafwiki --jwt-secret=***-me --admin-password=*** --allow-insecure=true
Reverse proxy (Nginx)
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
LeafWiki supporte aussi --base-path pour être servi sous un sous-chemin.
⚙️ Configuration
--jwt-secret: clé JWT obligatoire, longue et aléatoire (openssl rand -hex 32).--admin-password: mot de passe du compte admin créé au premier démarrage.--allow-insecure=true: à retirer en production HTTPS.--enable-revision: active l'historique de révisions (opt-in, désactivé par défaut).--enable-link-refactor: réécrit automatiquement les liens lors d'un renommage de page.--custom-stylesheet: chemin vers un CSS custom.- Reverse-proxy auth (v0.10+) : si l'auth est gérée par le reverse proxy (ex. Authelia), LeafWiki peut faire confiance à un header HTTP.
- Import Obsidian : uploader un ZIP depuis l'admin, avec réécriture des wiki links.
🔄 Alternatives
Open Source
- app-wiki-go — Wiki Go plus riche avec Kanban intégré
- app-otter-wiki — Wiki Python/Git minimaliste
- app-wikidocs — Wiki PHP flat-file WYSIWYG
- app-pepperminty-wiki — Wiki PHP single-file
- app-trilium-notes — PKM hiérarchique, plus puissant mais plus complexe
- Wiki.js — Wiki Node.js complet
- Raneto — KB Markdown Node.js
Propriétaires
- Notion — Workspace moderne, beaucoup plus large
- Obsidian Sync — Sync payant d'Obsidian (le format reste local)
- Dropbox Paper — Docs collaboratifs
- Slab — Knowledge base d'équipe
🔐 Sécurité
- ✅ Pas de base externe : surface d'attaque minimale (SQLite local embarqué).
- ✅ HTTPS obligatoire en production pour que les JWT et cookies soient protégés.
- ✅ JWT secret long et stocké hors du dépôt Git.
- ⚠️
--allow-insecure=true: à supprimer dès que HTTPS est en place. - ✅ Rôles stricts : admin / editor / viewer, pas d'ACL par page.
- ✅ Mode lecture publique possible : limiter l'auth à l'édition.
- ✅ Backups : un
cp -r leafwiki-data/suffit (Markdown + SQLite). - ✅ Reverse-proxy auth : permet d'intégrer Authelia/Authentik/Keycloak en amont.
- ⚠️ Optimistic locking : pas de merge automatique, le dernier écrivant gagne.
📚 Ressources
- Site officiel leafwiki.com
- Dépôt GitHub perber/leafwiki
- Démo en ligne (reset horaire)
- Devlog #1 sur dev.to
- Documentation install Nginx
- Documentation install Raspberry Pi
Pages Liées
- cat-wiki — Vue d'ensemble de la catégorie Wiki
- app-wiki-go — Wiki Go plus complet avec Kanban
- app-otter-wiki — Alternative Python/Git
- app-trilium-notes — PKM plus puissant
- recettes-docker-compose — Templates Docker
- securisation-home-lab — Bonnes pratiques de sécurité