Abstract teal and amber illustration of stacked books and shelves representing a self-hosted wiki

BookStack

BookStack

BookStack est un wiki open source et auto-hébergé qui organise la documentation selon une hiérarchie Étagères, Livres, Chapitres et Pages, avec un éditeur WYSIWYG intégré et un éditeur Markdown pour celles et ceux qui préfèrent taper leur texte à la main. C’est l’un des wikis auto-hébergés les plus recommandés pour les homelabs et les petites équipes, aux côtés de Wiki.js et de DokuWiki.

La maison de BookStack a changé, elle aussi, mais pas à la suite d’un fork ou d’un rachat. Le projet tourne désormais principalement sur Codeberg ; son dépôt GitHub n’est conservé qu’à titre de miroir, avec la mention explicite « NOW MANAGED ON CODEBERG ». La licence n’a pas bougé : toujours MIT de bout en bout, et Dan Brown, qui a lancé le projet en 2015, reste le seul mainteneur du projet, financé par des dons et des contrats de support plutôt que par des investisseurs.

Licence : MIT, confirmée directement depuis le fichier LICENSE du dépôt bookstack/bookstack sur Codeberg (également repris en miroir sur GitHub), Copyright (c) 2015-2026, Dan Brown et les contributeurs du projet BookStack. Libre pour tout usage, y compris commercial, sans fonctionnalité verrouillée derrière un paywall. BookStack ne propose qu’une seule version, gratuite et ouverte ; sa FAQ officielle confirme qu’il n’existe aucune édition payante ou « entreprise » séparée.

En bref : site officiel bookstackapp.com · code source codeberg.org/bookstack/bookstack (GitHub conservé uniquement comme miroir) · aucune image Docker officielle, la documentation recommande en premier lieu linuxserver/bookstack (LinuxServer.io), avec solidnerd/bookstack cité comme alternative · nécessite PHP 8.2+ (Laravel) et une base de données MySQL 8.0+ ou MariaDB 10.6+ séparée, aucune option SQLite · dernière version stable v26.05.2.

Ce que fait vraiment BookStack : Étagères, Livres, Chapitres, Pages

BookStack organise l’information à la manière d’une bibliothèque qui range de vrais livres, et c’est cette hiérarchie qui justifie de le préférer à une simple appli de prise de notes. Un Livre (Book) est l’unité de premier niveau pour un sujet donné : un homelab, un client, un service. À l’intérieur d’un livre, on rédige directement des Pages, ou on le découpe d’abord en Chapitres une fois qu’il grossit ; les chapitres restent optionnels et ne servent qu’à garder les gros livres navigables. Une fois que plusieurs livres s’accumulent, une Étagère (Bookshelf) les regroupe, et un même livre peut très bien figurer sur plusieurs étagères à la fois. Seules les pages contiennent du contenu à proprement parler, rédigé dans l’éditeur WYSIWYG par défaut de BookStack ou dans son éditeur Markdown, comme le confirme la documentation officielle de BookStack sur la structure du contenu.

Installer BookStack avec Docker

BookStack n’a pas d’image Docker officielle et maintenue en interne. Sa documentation d’installation renvoie plutôt vers deux images maintenues par la communauté. Celle de LinuxServer.io est citée en premier et reçoit le plus de mises à jour ; c’est donc elle qu’utilise la configuration ci-dessous. Les deux options ont besoin d’une base MySQL ou MariaDB tournant à côté de BookStack ; il n’existe aucun repli intégré vers SQLite.

services:
  bookstack_db:
    image: lscr.io/linuxserver/mariadb:latest
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - MYSQL_ROOT_PASSWORD=changeme_root
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=changeme_db
    volumes:
      - ./bookstack_db:/config
    restart: unless-stopped

  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    depends_on:
      - bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - APP_URL=http://your-server-ip:6875
      - APP_KEY=base64:changeme_generated_key
      - DB_HOST=bookstack_db
      - DB_PORT=3306
      - DB_USERNAME=bookstack
      - DB_PASSWORD=changeme_db
      - DB_DATABASE=bookstackapp
    volumes:
      - ./bookstack:/config
    ports:
      - "6875:80"
    restart: unless-stopped
  1. Générez un APP_KEY avant le tout premier démarrage : lancez docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey et collez le résultat dans le fichier compose ci-dessus.
  2. Enregistrez le fichier sous docker-compose.yml, faites correspondre PUID et PGID à l’utilisateur qui doit posséder les dossiers ./bookstack_db et ./bookstack, puis lancez docker compose up -d.
  3. Laissez au conteneur de base de données une minute pour terminer son initialisation avant la toute première requête vers BookStack ; le conteneur applicatif peut avoir besoin d’un redémarrage s’il tente de se connecter trop tôt.
  4. Ouvrez http://ip-de-votre-serveur:6875 et connectez-vous avec le compte par défaut admin at admin dot com et son mot de passe, puis changez immédiatement les deux depuis Settings > Users.
docker compose up -d
docker compose logs -f bookstack

Avant de commencer : BookStack n’est pas une appli mono-conteneur basée sur SQLite comme certains des autres outils présentés sur ce site. Il attend une vraie base MySQL 8.0+ ou MariaDB 10.6+ avec ses propres identifiants ; prévoyez donc un second conteneur, ou un serveur de base de données déjà existant, avant même d’écrire le fichier compose.

Notes de sécurité : le compte par défaut admin at admin dot com / password doit être changé dès la première connexion, pas remis à plus tard. Si BookStack tourne derrière un reverse proxy dans un sous-dossier, ou si le nom d’hôte externe diffère de celui configuré, APP_URL doit correspondre exactement, sinon les connexions et les envois de fichiers échouent silencieusement. BookStack ne gère aucun HTTPS par lui-même : une instance exposée publiquement a besoin d’un reverse proxy comme Nginx Proxy Manager ou Caddy devant elle, ou doit rester hors d’internet derrière un outil de réseau privé comme Tailscale.

BookStack face à Wiki.js et Confluence

Les trois organisent la connaissance écrite en pages avec une forme de hiérarchie, mais ils diffèrent par la stack technique, la licence, et par qui est censé les héberger.

BookStackWiki.jsConfluence
HébergementAuto-hébergé uniquementAuto-hébergé uniquementAtlassian Cloud ou Data Center auto-géré
LicenceMITAGPL-3.0Propriétaire, payant
StackPHP/Laravel + MySQL ou MariaDBNode.js, choix de base SQLPropriétaire
ÉditeurWYSIWYG et MarkdownMarkdown et WYSIWYG, avec un mode de stockage Git optionnelTexte enrichi
StructureÉtagères > Livres > Chapitres > PagesPages à plat avec navigation arborescenteEspaces > Pages
CoûtGratuit, aucune offre entrepriseGratuitPayant par utilisateur
  • Sous licence MIT, sans fonctionnalité verrouillée derrière un paywall ni offre entreprise séparée : ce que vous auto-hébergez, c’est déjà le produit complet
  • La hiérarchie Étagères, Livres, Chapitres, Pages passe d’un wiki de homelab en solo à une base de connaissances multi-équipes sans forcer de restructuration par la suite
  • L’éditeur WYSIWYG intégré est réellement facile à prendre en main pour des contributeurs non techniques, et un éditeur Markdown reste disponible pour qui le préfère
  • Développement actif et régulier, avec des versions apportant de nouvelles fonctionnalités environ tous les deux mois et des correctifs de sécurité rapides
  • Aucune image Docker officielle : au quotidien, il faut faire confiance à une image tierce (LinuxServer.io ou solidnerd) pour suivre les versions amont
  • Nécessite une base MySQL ou MariaDB autonome, un rouage de plus que les alternatives basées sur SQLite
  • Aucun système de plugins, par choix de conception ; BookStack reste délibérément simple plutôt qu’extensible, et les demandes de fonctionnalités sortant du cadre sont souvent refusées d’emblée
  • Aucun hébergement géré officiel proposé par le projet lui-même, seulement des prestataires tiers comme PikaPods ou Cloudron

Matériel : BookStack ne publie pas de minimum CPU ou RAM précis, mais en tant qu’appli PHP et Laravel adossée à MySQL ou MariaDB, il tourne sans souci sur la même petite VM ou le même nano-ordinateur qui fait déjà tourner d’autres applis auto-hébergées légères. Deux cœurs CPU et 1 à 2 Go de RAM suffisent pour un wiki personnel ou de petite équipe. Notre guide de démarrage homelab pour débutants détaille comment choisir cette première machine.

Accéder à BookStack depuis l’extérieur de votre réseau fonctionne comme pour n’importe quel autre service homelab : un reverse proxy pour un vrai domaine HTTPS, ou un outil de réseau privé si vous préférez ne pas l’exposer publiquement du tout. Nos fiches Nginx Proxy Manager et Caddy couvrent la voie du reverse proxy, et Tailscale couvre l’option qui évite complètement l’exposition publique. Si ce qu’il vous faut, c’est plutôt numériser et archiver des papiers que rédiger de nouvelles pages, notre fiche Paperless-ngx couvre ce besoin différent, centré sur l’OCR.

FAQ

BookStack est-il gratuit ?

Oui. Il est sous licence MIT et gratuit pour tout usage, y compris commercial, sans fonctionnalité verrouillée derrière un paywall. BookStack ne vend pas d’édition payante ou « entreprise » séparée ; la version auto-hébergée est la seule qui existe. Le projet vend des plans de support optionnels, mais rien dans le fonctionnement du logiciel n’en dépend.

À quoi sert concrètement BookStack ?

À de la documentation qui vivrait sinon dans des fichiers texte éparpillés ou un outil de wiki payant : notes de homelab et d’infrastructure, bases de connaissances internes, documentation d’aide destinée aux clients, notes personnelles de référence. L’objectif affiché du projet est une plateforme utilisable par des équipes aux compétences mixtes, sans que personne n’ait besoin d’apprendre Markdown ou Git au préalable.

BookStack a-t-il besoin d’une base de données, ou peut-il tourner sur SQLite ?

Il lui faut une vraie base de données : MySQL 8.0 ou plus récent, ou MariaDB 10.6 ou plus récent. Aucun mode SQLite n’existe. C’est un choix de conception délibéré, pas une fonctionnalité manquante, et ça vaut la peine de le prévoir avant de choisir une image Docker.

BookStack ou Wiki.js pour un wiki auto-hébergé ?

Les deux sont solides et activement maintenus. La structure fixe Étagères, Livres, Chapitres, Pages de BookStack, avec son édition pensée d’abord pour le WYSIWYG, a tendance à convaincre les contributeurs non techniques et les équipes qui préfèrent que la structure soit déjà décidée pour elles. L’option de stockage via Git de Wiki.js et son choix plus large de bases de données séduisent plutôt celles et ceux qui veulent garder la main sur la façon dont le contenu est stocké. Aucun des deux n’est un mauvais choix pour un homelab.

Un homelab qui traîne déjà des notes de configuration éparpillées, des bouts de docker-compose, et des mots de passe pour des services que plus personne ne se souvient avoir configurés : c’est exactement ce que BookStack sait résoudre. L’exigence de base de données et l’absence d’image Docker officielle restent les deux seuls vrais points de friction, et aucun des deux ne pèse bien lourd une fois le fichier compose ci-dessus écrit.