name: bookstack services: bookstack: image: lscr.io/linuxserver/bookstack:version-${BOOKSTACK_VERSION:-v26.09.2} restart: unless-stopped environment: PUID: ${PUID:-1000} PGID: ${PGID:-1000} TZ: ${TZ:-Etc/UTC} APP_URL: ${BOOKSTACK_APP_URL:-http://localhost:6875} APP_KEY: ${BOOKSTACK_APP_KEY:?Set BOOKSTACK_APP_KEY to a unique base64 key} DB_HOST: database DB_PORT: "3306" DB_USERNAME: bookstack DB_PASSWORD: ${BOOKSTACK_DB_PASSWORD:?Set a unique BOOKSTACK_DB_PASSWORD} DB_DATABASE: bookstack ports: - "127.0.0.1:${BOOKSTACK_PORT:-6875}:80" volumes: - bookstack-config:/config depends_on: database: condition: service_healthy healthcheck: test: ["CMD", "curl", "--fail", "--silent", "--max-time", "5", "http://127.0.0.1/status"] interval: 15s timeout: 10s retries: 10 start_period: 60s database: image: mariadb:11.4.13 restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: ${BOOKSTACK_DB_ROOT_PASSWORD:?Set a unique BOOKSTACK_DB_ROOT_PASSWORD} MARIADB_DATABASE: bookstack MARIADB_USER: bookstack MARIADB_PASSWORD: ${BOOKSTACK_DB_PASSWORD:?Set a unique BOOKSTACK_DB_PASSWORD} volumes: - bookstack-database:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 10 start_period: 30s volumes: bookstack-config: name: ${BOOKSTACK_CONFIG_VOLUME:-bookstack-config} bookstack-database: name: ${BOOKSTACK_DB_VOLUME:-bookstack-database}