BookStack
v1.0.0Simple self-hosted platform for organizing documentation and wiki content.
wiki by getarcaneapp
x-arcane:
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/bookstack.svg
urls:
- https://www.bookstackapp.com/
- https://github.com/BookStackApp/BookStack
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
restart: unless-stopped
depends_on:
- bookstack-db
ports:
- "${APP_PORT:-6875}:80"
environment:
PUID: ${PUID:-1000}
PGID: ${PGID:-1000}
TZ: ${TZ:-Etc/UTC}
APP_URL: ${APP_URL}
APP_KEY: ${APP_KEY}
DB_HOST: bookstack-db
DB_PORT: 3306
DB_DATABASE: ${MYSQL_DATABASE:-bookstack}
DB_USERNAME: ${MYSQL_USER:-bookstack}
DB_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- ${BASE_PATH}/config:/config
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/bookstack.svg
bookstack-db:
image: lscr.io/linuxserver/mariadb:latest
restart: unless-stopped
environment:
PUID: ${PUID:-1000}
PGID: ${PGID:-1000}
TZ: ${TZ:-Etc/UTC}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE:-bookstack}
MYSQL_USER: ${MYSQL_USER:-bookstack}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- ${BASE_PATH}/database:/config
healthcheck:
test: ["CMD-SHELL", "mariadb-admin ping -h localhost -u$${MYSQL_USER} -p$${MYSQL_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 10
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/mariadb.svg
APP_PORT=6875
BASE_PATH=/data/compose/bookstack
PUID=1000
PGID=1000
TZ=Etc/UTC
APP_URL=http://localhost:6875
APP_KEY=base64:change-me-run-openssl-rand-base64-32
MYSQL_ROOT_PASSWORD=change-this-root-password
MYSQL_DATABASE=bookstack
MYSQL_USER=bookstack
MYSQL_PASSWORD=change-this-bookstack-password
README
Set APP_URL to the public URL users will use to access BookStack before first setup.
Set APP_KEY to base64: followed by the output of openssl rand -base64 32 before the first start, and keep it stable after installation.