Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+155
View File
@@ -0,0 +1,155 @@
---
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