Installer Bookstack
Marche toujours 29.08.2025
Prérequis
🔑Clé Laravel
GĂ©nĂ©rer une clĂ© Laravel : https://generate-random.org/laravel-key-generatorÂ
🗒️docker-compose.yaml
version: '3.9'
services:
########### BOOKSTACK - test ###########
bs:
image: lscr.io/linuxserver/bookstack
container_name: bs
restart: unless-stopped
volumes:
- '/volume1/docker/bs:/config'
environment:
PUID: 1026
PGID: 100
APP_URL: https://url.domain.com
APP_KEY: base64:votreclé
DB_HOST: bs_db
DB_USER: ectobs
DB_PASS: culpasswordlol
DB_DATABASE: bookstackdb
ports:
- '6089:80'
networks:
- bridge-bs-test
depends_on:
- bs_db
######### BOOKSTACK - DATABASE #########
bs_db:
image: lscr.io/linuxserver/mariadb
container_name: bs_db
restart: unless-stopped
volumes:
- '/volume1/docker/bs-db:/config'
environment:
PUID: 1026
PGID: 100
MYSQL_ROOT_PASSWORD: culculculcul
TZ: 'Europe/Zurich'
MYSQL_DATABASE: bookstackdb
MYSQL_USER: ectobs
MYSQL_PASSWORD: culpasswordlol
networks:
- bridge-bs-test
networks:
bridge-bs-test:
name: bridge-bs-test
driver: bridge
🗒️.env
# This file, when named as ".env" in the root of your BookStack install
# folder, is used for the core configuration of the application.
# By default this file contains the most common required options but
# a full list of options can be found in the '.env.example.complete' file.
# NOTE: If any of your values contain a space or a hash you will need to
# wrap the entire value in quotes. (eg. MAIL_FROM_NAME="BookStack Mailer")
# Application key
# Used for encryption where needed.
# Run `php artisan key:generate` to generate a valid key.
APP_KEY=base64:votreclé
# Application URL
# This must be the root URL that you want to host BookStack on.
# All URLs in BookStack will be generated using this value
# to ensure URLs generated are consistent and secure.
# If you change this in the future you may need to run a command
# to update stored URLs in the database. Command example:
# php artisan bookstack:update-url https://old.example.com https://new.example.com
APP_URL=https://url.domain.com
# Database details
DB_HOST=bs_db
DB_DATABASE=bookstackdb
DB_USERNAME=ectobs
DB_PASSWORD=culpasswordlol
# Mail system to use
# Can be 'smtp' or 'sendmail'
MAIL_DRIVER=smtp
# Mail sender details
MAIL_FROM_NAME="BookStack"
MAIL_FROM=bookstack@example.com
# SMTP mail options
# These settings can be checked using the "Send a Test Email"
# feature found in the "Settings > Maintenance" area of the system.
# For more detailed documentation on mail options, refer to:
# https://www.bookstackapp.com/docs/admin/email-webhooks/#email-configuration
MAIL_HOST=localhost
MAIL_PORT=587
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Installation
📝Modifier les fichiers prérequis
- Générez et ajouter la clé laravel
- (optionnel) Changez le port de bookstack
- Saisissez la future url de votre application
- Modifiez les données d'identification à la base de donnée
- Chemin de stockage de votre application
- ...
La base de donnée n'a pas de port précisé, elle utilisera son port par défaut (3306) et n'interfèrera pas avec d'autre base de données utilisant le même port car les conteneurs ont leur propre réseau docker.
🚀Monter les dockers
sudo docker-compose -f votre-fichier-docker-compose.yaml up -d
🚮Éteindre et supprimer le conteneur Bookstack
Éteignez et supprimez le conteneur bookstack (le but était juste de créer son fichier www/.env).
Supprimez tous ce qui se trouve dans le dossier bs/ Ă part le fichier www/.env.
Remplacez le contenu du fichier www/.env par celui du fichier prérequis que vous avez modifié.
Vous pouvez, dès le début placer le fichier .env au bon endroit pour éviter de lancer, éteindre et supprimer le conteneur. (faut juste être 100% sûr des droits sur le fichier).
🚀Remonter le docker bookstack
sudo docker-compose -f votre-fichier-docker-compose.yaml up -d
(si le docker db était toujours actif, seul le conteneur Bookstack démarrera).
⌛Attendre
Vérifier via les logs que le conteneur Bookstack effectue des migration de fichiers (ça prend entre 30 secondes à 10 minutes).
Une fois le message "done.", c'est bon.
Le conteneur sera accessible via localhost:port ou via le nom de domaine définit si déjà paramétré.
Identifiant par défaut
admin@admin.com / password
