---
title: BookStack
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, wiki, documentation, collaboration, php, laravel, mariadb, docker, open-source, equipe]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=wiki]
---

# 📚 BookStack

> Wiki PHP open source basé sur Laravel, structuré en étagères → livres → chapitres → pages. Conçu pour documenter procédures, projets et connaissances d'équipe dans une interface WYSIWYG claire. C'est l'alternative self-hosted la plus populaire à Confluence pour les petites et moyennes équipes.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [bookstackapp.com](https://www.bookstackapp.com/) |
| **GitHub** | [BookStackApp/BookStack](https://github.com/BookStackApp/BookStack) |
| **License** | MIT |
| **Langage** | PHP (Laravel) |
| **Étoiles** | ⭐ 11 (selfh.st) |
| **Dernière MAJ** | 2026-05-30 |
| **Catégorie** | [[cat-wiki]] |

## Description

**BookStack** (à ne pas confondre avec `obsidian-livesync` qui relève de la synchronisation Obsidian) est un wiki **PHP/Laravel** open source depuis 2016. Sa philosophie : organiser la documentation selon une hiérarchie familière — **Étagères → Livres → Chapitres → Pages** — qui évite la complexité des namespaces à la [[app-dokuwiki]] ou des espaces Confluence.

L'interface WYSIWYG (TinyMCE) avec bascule Markdown, multi-utilisateurs, permissions fines, recherche full-text, versioning, LDAP/SAML2/OIDC, API REST, webhooks et gestion d'images en font un wiki qui **fait le travail** sur n'importe quel LAMP/LEMP, gérant des milliers de pages. Sobriété assumée : pas d'éditeur temps réel type Notion.

Alternatives : [[app-wiki-js]] (Node.js), [[app-dokuwiki]] (flat-file), [[app-affine]] (Notion-like), [[app-tiddlywiki]] (single-file).

## Installation

### Docker Compose (recommandé)

L'image `lscr.io/linuxserver/bookstack` embarque PHP-FPM + Nginx. On l'associe à un conteneur MariaDB.

```yaml
# docker-compose.yml
services:
  mariadb:
    image: mariadb:11
    container_name: bookstack-db
    restart: unless-stopped
    environment:
      - MARIADB_ROOT_PASSWORD=ChangeMeRoot
      - MARIADB_DATABASE=bookstack
      - MARIADB_USER=bookstack
      - MARIADB_PASSWORD=ChangeMePass
    volumes:
      - bookstack-db:/var/lib/mysql

  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    restart: unless-stopped
    depends_on:
      - mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - APP_URL=https://wiki.exemple.fr
      - DB_HOST=mariadb
      - DB_USER=bookstack
      - DB_PASS=ChangeMePass
      - DB_DATABASE=bookstack
    volumes:
      - bookstack-config:/config
    ports:
      - "6875:80"

volumes:
  bookstack-config:
  bookstack-db:
```

Premier lancement : créer le compte admin via `/register` (ouvert uniquement au début), puis fermer l'inscription dans **Settings → Registration**.

### Installation manuelle (LAMP/LEMP)

Prérequis : **PHP 8.1+** (`mbstring`, `gd`, `mysqli`, `xml`, `curl`, `openssl`) + **MySQL 8+** ou **MariaDB 10.3+** + Apache/Nginx.

```bash
cd /var/www
sudo git clone https://github.com/BookStackApp/BookStack.git bookstack
cd bookstack && composer install --no-dev
cp .env.example .env && php artisan key:generate
php artisan migrate --force
sudo chown -R www-data:www-data /var/www/bookstack
sudo chmod -R 755 bootstrap/cache storage
```

## Configuration

Réglages dans `.env` (ou via variables Docker) et dans **Settings** :

- **APP_URL** : doit correspondre à l'URL publique (sinon OAuth cassé).
- **MAIL_*** : SMTP (`MAIL_MAILER=smtp`, `MAIL_PORT=587`, `MAIL_ENCRYPTION=tls`) pour invitations, notifications, reset.
- **AUTH_METHOD** : `standard`, `ldap`, `saml2` ou `oidc` (Keycloak, [[app-authentik]]).
- **STORAGE_TYPE** : `local` par défaut, ou `s3` pour externaliser vers MinIO.
- **ALLOW_REGISTRATION** : **désactiver en production** après création du compte admin.
- **DRAWIO_URL** : URL publique d'un Draw.io pour les diagrammes.
- **LDAP** : `LDAP_HOST`, `LDAP_BASE_DN`, `LDAP_DN`, `LDAP_PASS` pour l'authentification centralisée.
- **API** : jeton personnel dans le profil, pour scripter des migrations depuis [[app-dokuwiki]].

## Alternatives

### Open Source (self-hosted)

- [[app-wiki-js]] — Wiki Node.js, éditeur temps réel, Git backend.
- [[app-dokuwiki]] — Wiki PHP vétéran, flat-file, ultra-léger.
- [[app-xwiki]] — Wiki Java/enterprise avec apps intégrées.
- [[app-tiddlywiki]] — Wiki single-file JavaScript, 100% portable.
- [[app-affine]] — Workspace Notion-like avec whiteboard.

### Propriétaire (SaaS)

- **Notion** — référence wiki/workspace, cloud-only freemium.
- **Confluence Cloud** (Atlassian) — standard entreprise avec Jira.
- **GitBook**, **Slab**, **Tettra** — wikis doc/IA, cloud-only.

## Sécurité

- **HTTPS obligatoire** via reverse proxy (Traefik, Caddy, Nginx) + Let's Encrypt.
- **Désactiver l'inscription** dès l'admin créé.
- **2FA TOTP** pour les admins.
- **Fail2ban** sur les 401 au reverse proxy. Voir [[recettes-docker-compose]].
- **Permissions fines** : rôles rédacteur/relecteur/lecteur.
- **Sauvegardes** : volumes `bookstack-db` + `bookstack-config` (uploads, `.env`).
- **Mises à jour** : releases GitHub mensuelles, `--pull` puis relance.
- **Headers** : `HSTS`, `CSP`, `X-Frame-Options: SAMEORIGIN` au proxy.
- **Audit** : table `activities` ; exporter régulièrement.

## Ressources

- Site : [bookstackapp.com](https://www.bookstackapp.com/)
- Code : [github.com/BookStackApp/BookStack](https://github.com/BookStackApp/BookStack)
- Doc : [docs.bookstackapp.com](https://docs.bookstackapp.com/)
- Docker LSIO : [hub.docker.com/r/linuxserver/bookstack](https://hub.docker.com/r/linuxserver/bookstack)
- Démo : [demo.bookstackapp.com](https://demo.bookstackapp.com/) (`admin@admin.com` / `password`)
- Discord : [discord.gg/ztkBqR6](https://discord.gg/ztkBqR6)
- Selfh.st : [selfh.st/apps/?tag=wiki](https://selfh.st/apps/?tag=wiki)

## Pages Liées

- [[cat-wiki]] — catégorie parente
- [[recettes-docker-compose]] — patterns Compose
- [[app-wiki-js]] — alternative Node.js moderne
- [[app-dokuwiki]] — alternative PHP flat-file
- [[app-affine]] — alternative Notion-like
- [[app-authentik]] — SSO OIDC/SAML pour BookStack
- [[app-nextcloud]] — autre grand classique de la doc d'équipe
