A stable and reliable debian based image for the BookStack documentation platform.
9.7K
Docker BookStack by AutoscalixWARNING : this projects will end shortly :
General tags :
Dependencies related tags :
License :
A stable and reliable Docker image for the BookStack documentation platform, docker image provided for free by Autoscalix.

latest, amd64-latest, arm64-latest, armhf-latest[bootstack released version], amd64-[bootstack released version], arm64-[bootstack released version], armhf-[bootstack released version] (eg : v21.05.2, amd64-v21.05.2, arm64-v21.05.2, armhf-v21.05.2)More information about BookStack releases here : https://github.com/BookStackApp/BookStack/releases
Our images support most common architectures such as x86-64, arm64 and armhf.
We use docker manifest for multi-platform awareness.
More information about this feature is available in the docker documentation here.
Simply pulling autoscalix/bookstack should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
|---|---|
| x86-64 (INTEL/AMD 64 bit) | amd64-latest |
| arm64 (arm64v8) | arm64-latest |
| armhf (arm32v7) | armhf-latest |
If needed, you can pull image for specific architecture using these tags.
Eg : autoscalix/bookstack:amd64-latest, autoscalix/bookstack:arm64-latest or autoscalix/bookstack:armhf-latest
version: "3.2"
services:
bookstack:
image: autoscalix/bookstack
container_name: bookstack
environment:
- APP_URL=https://your-sub.domain.tld
- DB_HOST=<yourdbhost>
- DB_USERNAME=<yourdbusername>
- DB_PASSWORD=<yourdbpass>
- DB_DATABASE=<yourdbname>
- DB_PORT=<yourdbport>
- WAIT_DB_INIT=1
volumes:
- /host/data/path/bookstack:/config
ports:
- 8000:80
restart: unless-stopped
depends_on:
- bookstack_db
bookstack_db:
image: mysql
container_name: bookstack_db
ports:
- <yourdbport>:3306
environment:
- TZ=Europe/Paris
- MYSQL_ROOT_PASSWORD=<yourdbpass>
- MYSQL_DATABASE=<yourdbname>
- MYSQL_USER=<yourdbusername>
- MYSQL_PASSWORD=<yourdbpass>
command: mysqld --default-authentication-plugin=mysql_native_password
volumes:
- /host/data/path/mysql:/var/lib/mysql
restart: unless-stopped
docker run -d \
--name=bookstack \
-e APP_URL=https://your-sub.domain.tld \
-e DB_HOST=<yourdbhost> \
-e DB_USERNAME=<yourdbuser> \
-e DB_PASSWORD=<yourdbpass> \
-e DB_DATABASE=<yourdbname> \
-p 8000:80 \
-v /path/to/data/on/host:/config \
--restart unless-stopped \
autoscalix/bookstack
Autoscalix docker images are configured so the BookStack .env parameters can be passed at runtime (such as those above).
| Parameter | Function |
|---|---|
-p 8000:80 | will map the container's port 80 to port 8000 on the host |
-e APP_URL= | for specifying the IP:port or URL your BookStack instance will be accessed on (ie. http://192.168.1.123:8000 or https://bookstack.mydomain.tld |
-e DB_HOST=<yourdbhost> | for specifying the database host |
-e DB_USERNAME=<yourdbuser> | for specifying the database user |
-e DB_PASSWORD=<yourdbpass> | for specifying the database password |
-e DB_DATABASE=<yourdbname> | for specifying the database to be used |
-e APP_KEY=<yourSecretAppKeyHere> | (optional) this key is used by BookStack for ciphering purposes (CSRF and session cookies), if no APP_KEY specified, it will be generated automatically. The APP_KEY needs to be 16 or 32 characters long |
-e WAIT_DB_INIT=1 | (optional) for making container to wait the database to be available, this will wait database to be up and running for host and port specified in environment variables DB_HOST AND DB_PORT. (usefull if you use mysql database and BookStack in a docker-compose file). If you use an external database (already started when the BookStack container start), don't specify this variable to make container start faster. |
-v </path/to/data/on/host>:/config | (optional if you use an object storage with BookStack, eg : S3) this will store any uploaded data on the docker host (for production, I recommend using an S3 object storage, more information about storing BookStack uploaded files into an object storage in the BookStack documentation here) |
BookStack has the following default credentials :
If you need to use the extra functionalities of BookStack (email, Memcache, LDAP, etc.) you may need to pass additional variables in the docker container environment (or make your own .env file).
You can pass any of the BookStack .env.example.complete variables as additional container environment variables with docker run (eg : -e VARIABLE=value).
Check available .env variables for BookStack here.
You can check the BookStack documentation for additional information about the .env file.
When you create the container, the image will use the .env file in the path /config/www/.env.
A stable version of wkhtmltopdf (with patched QT) is provided in this image, you can use it as an alternative PDF rendering generator with BookStack as described in the BookStack documentation here.
This wkhtmltopdf binary has been tested to render successfully a large amount of bookstack pages (more than 100) with various content without crashing (if you have enought free RAM of course).
The path to the wkhtmltopdf binary in this image to include in your .env file is /usr/local/bin/wkhtmltopdf.
Eg : to enable wkhtmltopdf rendering, use WKHTMLTOPDF=/usr/local/bin/wkhtmltopdf as environment variable.
This image is also compatible with common docker cloud hosting technologies (eg : kubernetes, ECS, ...) if you need to host BookStack on a fault tolerant and scalable infrastructure.
If you want to host BookStack behind a load balancer, you will need to use cookie based sticky sessions for CSRF and login to work properly.
I recommend to base sticky sessions on the XSRF-TOKEN cookie as it allow each requests (with a unique CSRF token) to be runned on different server if needed instead of stick to one server for the whole session.
New version of Autoscalix docker images are tested automaticaly then pushed to Docker Hub by a scheduled gitlab pipeline for each new BookStack release since v21.04
BookStack updates are checked every day.
Here is the list of dependencies and their current version embeded in this docker image :
You can find bellow an exemple of how to update your docker-bookstack installation depending of how you run BookStack in docker (docker-compose or docker run).
Database migrations are done during the container startup.
# Update images, then update containers
docker-compose pull
docker-compose up -d
# Optionally, remove old dandling images
docker image prune
# Update the autoscalix/bookstack image
docker pull autoscalix/bookstack
# Then stop the container
docker stop bookstack
# Remove old dandling images
docker rm bookstack
# Then recreate a container from the docker images using the docker run exemple above (see Exemple usage with docker cli)
...
# Finally remove old dandling images
docker image prune
If you need to make advanced modifications to these images for development or other purposes, use the following commands to build this image locally :
git clone https://gitlab.com/es-six/autoscalix-docker-bookstack.git autoscalix-docker-bookstack
cd autoscalix-docker-bookstack
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack
docker build --no-cache -t autoscalix/bookstack .
The arm64 image can be built on x86_64 hardware using docker buildx
# Get qemu for Docker
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# Create a docker buildx builder
docker buildx create --name multiarch-builder
docker buildx use multiarch-builder
docker buildx inspect --bootstrap multiarch-builder
# Run build
docker buildx build --load --no-cache --platform linux/arm64 -t bookstack-arm64 .
The armhf image can be built on x86_64 hardware using docker buildx
# Get qemu for Docker
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# Create a docker buildx builder
docker buildx create --name multiarch-builder
docker buildx use multiarch-builder
docker buildx inspect --bootstrap multiarch-builder
# Run build
docker buildx build --load --no-cache --platform linux/arm/v7 -t bookstack-armhf .
Use the default Dockerfile, it can be use to build x86_64, arm64 or armhf build.
If you want to use this image on windows WSL, it's possible if you do two extra things :
Recommandation : use the docker-compose example above and specify DB_HOST=host.docker.internal
If you need to display errors occurring in BookStack to troubleshoot your installation, pass the variable APP_DEBUG=1 as environment variable so error details will be displayed when error occur while loading a page.
You can find the Gitlab repository here : https://gitlab.com/es-six/autoscalix-docker-bookstack
Content type
Image
Digest
sha256:1896c6a05…
Size
267.3 MB
Last updated
over 2 years ago
docker pull autoscalix/bookstack