services: db: image: mariadb:11 container_name: bookstack-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${DB_DATABASE} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_PASSWORD} volumes: # Persist database files - ${DATA_DIR}/db:/var/lib/mysql networks: - internal bookstack: image: lscr.io/linuxserver/bookstack:latest container_name: bookstack restart: unless-stopped depends_on: - db ports: # Web interface - "${BOOKSTACK_PORT}:80" environment: # Application URL - APP_URL=${APP_URL} # Session encryption key - APP_KEY=${APP_KEY} # Database connection - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} - DB_DATABASE=${DB_DATABASE} - DB_USERNAME=${DB_USERNAME} - DB_PASSWORD=${DB_PASSWORD} # Timezone - TZ=${TZ} # User/group IDs for file permissions - PUID=${PUID} - PGID=${PGID} volumes: # Application configuration - ${DATA_DIR}/config:/config networks: - external - internal networks: internal: external: true external: external: true