Direkt zum Hauptinhalt

Cache & Session Konfiguration

Über .env Datei lassen sich der Cache und die Verarbeitung der Sessions (Sitzungen) anpassen.

.env Konfigurationsdatei

In der Konfigurationsdatei .env speichert Bookstack alle Standard- und Server-Einstellungen. Darunter auch die Einstellungen, die über die evironment-Variablen in der Docker Compose Datei festgelegt wurden.

Die Datei .env wird automatisch erstellt, wenn der Bookstack Container einmal erzeugt und gestartet wird. Anschließend befindet sich im Ordner, der in der Compose Datei zum Speichern der Bookstack Konfiguration festgelegt ist (./bookstack_app_data:/config), der Ordner www.

Angenommen es würde zum Beispiel folgendes Volume für den Bookstack Container in der Compose Datei definiert.

services:
  bookstack:
    volumes:
      - /home/user/docker/bookstack_app_data:/config

Dann würde in diesem Fall die Konfigurationsdatei wie folgt abgelegt: /home/user/docker/bookstack_app_data/www/.env.

Die Datei kann so bearbeitet werden. Nach der Bearbeitung wird einfach der Container neugestartet und die Änderungen sind direkt angewendet.

In der Datei können zusätzliche Einstellungen vorgenommen werden. Eine vollständige Liste: Umfangreiches .env Beispiel

 

Cache & Sitzungsspeicher

In der Standard Einstellung nutzt Bookstack das lokale Dateisystem als Cache. Darin sind neben dem Cache auch die Sitzungsdaten der Benutzer gespeichert. Um die Performance zu verbessern, können andere Systeme anstelle des lokalen Dateisystems verwendet werden, welche im folgenden vorgestellt werden.

Datenbank

Die am einfachsten einzurichtende Alternative ist das Speichern des Caches in der bereits für die Daten genutzten Datenbank. Dazu reicht es die folgenden beiden Zeilen in der .env Datei zu ergänzen und den Container neuzustarten.

CACHE_DRIVER=database
SESSION_DRIVER=database

Memcached

Um Memcached als Cache nutzen zu können, muss natürlich ein Memcached-Server vorhanden sein, der von Bookstack genutzt werden kann. Sobald ein solcher Server bereit steht, kann die .env Konfiguration angepasst werden.

CACHE_DRIVER=memcached
SESSION_DRIVER=memcached
MEMCACHED_SERVERS=127.0.0.1:11211:100

Neu ist nun die 3. Zeile, in der der Memcached Server zu definieren ist. Die localhost-IP ist dann durch die richtige IP oder den Hostname auszutauschen. Es können auch mehrere Server angegeben werden. Dabei spielt die Zahl hinter dem letzten Doppelpunkt eine entscheidende Rolle, die gibt die Gewichtung des Servers an.

Da Memcached nur Daten im Arbeitsspeicher zwischenspeichert, muss fast nichts konfiguriert werden, um einen Server bereitzustellen. Die folgende minimale Docker Compose Konfiguration reicht völlig aus, um einen Cache Server bereitzustellen.

services:
  memcached:
    image: memcached
    container_name: memcached
    restart: unless-stopped

Der Dienst memcached kann nun in eine beliebige andere Compose Konfiguration kopiert werden, um dort als Cache zu dienen. Dann nur noch bei den anderen Diensten den Servernamen hinterlegen und fertig.

Redis

Im Prinzip erfolgt die Konfiguration genauso wie bei Memcached. Nur das die Zahl nach dem letzten Doppelpunkt nun nicht die Gewichtung, sondern die Datenbank angibt.

CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_SERVERS=127.0.0.1:6379:0

Die Cookies werden zum Verfolgen der Sitzungen in Bookstack genutzt. Hier werden 2 Anpassungsmöglichkeiten angeboten.

# Only send cookies over a HTTPS connection.
# Ensure you have BookStack served over HTTPS before enabling.
# Defaults to 'false'
SESSION_SECURE_COOKIE=true
# Set the name of the cookie used by BookStack to track sessions.
# Defaults to 'bookstack_session'
SESSION_COOKIE_NAME=custom_cookie_name

Session Timeouts

Im Standard wird ein Benutzer nach 2 Stunden Inaktivität automatisch ausgeloggt. Diese Zeitspanne kann ebenfalls in der .env angepasst werden.

# Session lifetime in minutes.
# Defaults to 120
SESSION_LIFETIME=240