services: bookstack: image: lscr.io/linuxserver/bookstack:latest container_name: bookstack restart: unless-stopped networks: - homelab-network - traefik-network ports: - '6875:80' volumes: - ./config:/config environment: - PUID=${PUID} - PGID=${PGID} - APP_URL=https://bookstack.${DOMAIN} - DB_HOST=bookstack-db - DB_PORT=3306 - DB_DATABASE=bookstack - DB_USERNAME=bookstack - DB_PASSWORD=${BOOKSTACK_DB_PASSWORD} - APP_KEY=base64:NsYD8+8MAvtBhK8xw9p8pxQDy4x8aOQi/78M3CsseAw= healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost/'] interval: 30s timeout: 10s retries: 3 start_period: 60s depends_on: - bookstack-db labels: # CHANGE THE DOMAIN NAME HERE - 'traefik.http.routers.bookstack.rule=Host(`bookstack.kelinreij.duckdns.org`)' - com.getarcaneapp.arcane.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/bookstack.svg - 'com.centurylinklabs.watchtower.enable=true' - 'homelab.category=productivity' - 'homelab.description=Documentation and wiki platform' - 'traefik.enable=true' - 'traefik.docker.network=traefik-network' - 'traefik.http.routers.bookstack.entrypoints=websecure' - 'traefik.http.routers.bookstack.tls.certresolver=letsencrypt' - 'traefik.http.routers.bookstack.middlewares=authelia@docker' - 'traefik.http.services.bookstack.loadbalancer.server.port=80' bookstack-db: image: mariadb:10.11 container_name: bookstack-db restart: unless-stopped networks: - homelab-network volumes: - ./db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=${BOOKSTACK_DB_ROOT_PASSWORD} - MYSQL_DATABASE=bookstack - MYSQL_USER=bookstack - MYSQL_PASSWORD=${BOOKSTACK_DB_PASSWORD} labels: - com.getarcaneapp.arcane.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/mariadb.svg - 'homelab.category=productivity' - 'homelab.description=BookStack database' networks: homelab-network: external: true traefik-network: external: true x-dockge: urls: - https://{$PROXY_URL} - ${LOCAL_URL} x-arcane: icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/bookstack-light.svg urls: - https://{$PROXY_URL} - https://192.168.4.4:6875