--- 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](https://leafwiki.com/) | | **GitHub** | [perber/leafwiki](https://github.com/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 ```yaml # 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=true` est **obligatoire en HTTP** (pour le dĂ©veloppement). En HTTPS via reverse proxy, retirer cette option et s'assurer que le proxy transmet bien `X-Forwarded-Proto: https`. ### Option 2 : Script d'installation Linux (systemd) ```bash 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](https://github.com/perber/leafwiki/releases) et lancer : ```bash ./leafwiki --jwt-secret=***-me --admin-password=*** --allow-insecure=true ``` ### Reverse proxy (Nginx) ```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](https://leafwiki.com/) - [DĂ©pĂŽt GitHub perber/leafwiki](https://github.com/perber/leafwiki) - [DĂ©mo en ligne](https://demo.leafwiki.com/) (reset horaire) - [Devlog #1 sur dev.to](https://dev.to/perber/leafwiki-my-take-on-a-simpler-self-hosted-wiki-khi) - [Documentation install Nginx](https://github.com/perber/leafwiki/blob/main/docs/install/nginx.md) - [Documentation install Raspberry Pi](https://github.com/perber/leafwiki/blob/main/docs/install/raspberry-pi.md) ## 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Ă©