Initial vault setup
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user