--- services: booklore: image: ghcr.io/adityachandelgit/booklore-app:${BOOKLORE_VERSION:-latest} container_name: booklore restart: unless-stopped depends_on: mariadb: condition: service_healthy networks: - traefik - booklore volumes: - ./data/app:/app/data - ./data/books:/books environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin - DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore - DATABASE_USERNAME=${BOOKLORE_DB_USER:-booklore} - DATABASE_PASSWORD=${BOOKLORE_DB_PASSWORD} - SWAGGER_ENABLED=false labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.booklore.entrypoints=http" - "traefik.http.routers.booklore.rule=Host(`${BOOKLORE_DOMAIN:?error}`)" - "traefik.http.middlewares.booklore-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.booklore.middlewares=booklore-https-redirect" - "traefik.http.routers.booklore-secure.entrypoints=https" - "traefik.http.routers.booklore-secure.rule=Host(`${BOOKLORE_DOMAIN:?error}`)" - "traefik.http.routers.booklore-secure.tls=true" - "traefik.http.routers.booklore-secure.service=booklore" - "traefik.http.services.booklore.loadbalancer.server.port=6060" mariadb: image: lscr.io/linuxserver/mariadb:11.4.5 container_name: mariadb networks: - booklore environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - MYSQL_ROOT_PASSWORD=${BOOKLORE_DB_ROOT_PASSWORD} - MYSQL_DATABASE=booklore - MYSQL_USER=${BOOKLORE_DB_USER:-booklore} - MYSQL_PASSWORD=${BOOKLORE_DB_PASSWORD} volumes: - ./data/db:/config restart: unless-stopped healthcheck: test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"] interval: 5s timeout: 5s retries: 10 networks: traefik: external: true booklore: driver: bridge