BookStack nutze ich schon lange im Heimnetzwerk für die Dokumentation meines Servers, Anleitungen von Programmen oder auch Anleitungen meiner zentral Heizung.
Damals hatte ich BookStack nicht unter Docker am laufen, sondern in einer Linux VM. Die VM zickt ein bisschen herum. Nach einem Update läuft BookStack nicht mehr. Das war für mich der Anlass BookStack neu, in einem Docker Container umziehen zu lassen. Dabei entstanden allerdings weitere Probleme. Ein Problem war das Upload Limit.
In diesem Beitrag möchte ich dir meinen Weg beschreiben, wie ich BookStack installiert habe und welche Einstellungen ich vorgenommen habe.
Einfache Skript
Fangen wir einmal einfach an. Wenn dir ein Upload von 50MB reichen, dann funktioniert dieses Docker-Compose Skript.
Lege in deinem Wunschverzeichnis eine Datei docker-compose.yml an (z.B. mit `nano docker-compose.yml) und füge folgendes ein:
name: bookstack
services:
app:
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
restart: unless-stopped
networks:
- bookstack
ports:
- 8080:80
volumes:
- ./bookstack:/config
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- APP_URL=http://192.168.2.35:8080
- DB_HOST=bookstack_db
- DB_PORT=3306
- DB_USERNAME=bookstack
- DB_PASSWORD=passwort
- DB_DATABASE=bookstackapp
- APP_KEY= #Befehl docker run appkey ausführen
# - APP_DEBUG=true
depends_on:
- bookstack_db
deploy:
resources:
limits:
memory: 256m
# ==========
bookstack_db:
image: lscr.io/linuxserver/mariadb
container_name: bookstack_mariadb
restart: unless-stopped
networks:
- bookstack
volumes:
- ./bookstack:/config
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- MYSQL_ROOT_PASSWORD=passwort_root
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=passwort
deploy:
resources:
limits:
memory: 512m
networks:
bookstack:
name: bookstack
Passwörter kannst du natürlich anpassen (in meinem Homelab lege ich nicht so einen Wert auf sichere Passwörter, nutz nur keine Umlaute oder ausgefallene Sonderzeichen).
Zudem musst du die Zieladresse anpassen – bei mir die http://192.168.2.35:8080. Ist der Port 8080 bereits belegt, kannst du diesen natürlich anpassen – einmal unter ports und einmal unter APP_URL.
Speichern und den Editor verlassen.
Nun brauchst du noch den APP_KEY. Diesen bekommst du mit:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
Diesen in der docker-compose.yml unter environment – APP_KEY eintragen. Speichern und den Editor verlassen.
Mit docker compose up -d das Skript ausführen.
Solltest du Probleme haben, kannst du die environment APP_DEBUG=true aktivieren (# entfernen und passend einrücken). BookStack zeigt dir den Fehler an. Eine weitere Möglichkeit sind die Logs. Entweder über das Terminal oder bequem alle Container Logs anzeigen lassen mit dem Container dozzle.
BookStack sollte nun erreichbar sein über http://IP:8080 in deinem Heimnetzwerk.
Upload Limit erhöhen
Und dabei half mit ChatGPT. Was ein Kampf.
BookStack lässt nur ein Upload von 50MB zu. In meiner VM hatte ich die php.ini angepasst. Wenn man weiß wo sie liegt, ist das einfach.
Aber auch dieser Weg über den Container ist nicht schwer, wenn man den Weg kennt.
Zuerst musst du die docker-compose.yml anpassen. Füge unter environment folgendes hinzu (Upload Limit hier 1Gb):
- FILE_UPLOAD_MAX_SIZE=1000
- PHP_UPLOAD_LIMIT=1000M
- FILE_UPLOAD_SIZE_LIMIT=1000
Und unter volumes folgendes:
volumes:
- ./bookstack:/config
- ./bookstack/php.ini:/config/php/php-local.ini
Die php.ini müssen wir nun erstellen. Geh in den Ordner bookstack und erstelle mit nano php.ini die Datei (achte auf den Pfad, den du unter volumes eingegeben hast). Füge folgendes Skript ein:
upload_max_filesize = 1000M
post_max_size = 1100M
memory_limit = 1024M
max_execution_time = 300
max_input_time = 300
Nun einmal BookStack herunterfahren docker-compose down und neu starten docker-compose up -d --force-recreate.
Der Upload von bis zu 1Gb sollte nun funktionieren.







Schreibe einen Kommentar