--- services: bookstack: image: lscr.io/linuxserver/bookstack:latest container_name: bookstack environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - APP_URL=https://subdomain.example.com - DB_HOST=bookstack_db - DB_PORT=${DB_PORT} - DB_USER=${DB_USER} - DB_PASS=${DB_PASS} - DB_DATABASE=${DB_DATABASE} - APP_DEFAULT_DARK_MODE=true volumes: - /path/to/bookstack/bookstack_app_data:/config ports: - ${HTTP_PORT}:80 restart: unless-stopped depends_on: bookstack_db: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:80/ || exit 1"] interval: 15s timeout: 5s retries: 5 start_period: 30s networks: - bookstack-net bookstack_db: image: lscr.io/linuxserver/mariadb:latest container_name: bookstack_db environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} - MYSQL_DATABASE=${DB_DATABASE} - MYSQL_USER=${DB_USER} - MYSQL_PASSWORD=${DB_PASSWORD} volumes: - /path/to/bookstack/bookstack_db_data:/config restart: unless-stopped healthcheck: test: [ "CMD-SHELL", "mysqladmin ping -h localhost -u${DB_USER} -p${DB_PASSWORD} || exit 1", ] interval: 10s timeout: 5s retries: 10 start_period: 20s networks: - bookstack-net networks: bookstack-net: external: true