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
Session Cookie konfigurieren
# 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
Keine Kommentare