Skip to main content

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.

image.png

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