156 lines
6.3 KiB
Markdown
156 lines
6.3 KiB
Markdown
---
|
|
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
|