services: booklore: image: ghcr.io/booklore-app/booklore:latest container_name: booklore environment: USER_ID: 1000 GROUP_ID: 1000 TZ: Europe/Amsterdam DATABASE_URL: jdbc:mariadb://mariadb:3306/booklore DATABASE_USERNAME: booklore DATABASE_PASSWORD: ${DB_PASSWORD} BOOKLORE_PORT: 6060 depends_on: mariadb: condition: service_healthy volumes: - booklore-data:/app/data - /srv/booklore/books:/books - /srv/booklore/bookdrop:/bookdrop restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.booklore.rule=Host(`booklore.marijndoeve.nl`) - traefik.http.routers.booklore.entrypoints=websecure - traefik.http.routers.booklore.tls.certresolver=marijndoeve networks: - internal - web mariadb: image: lscr.io/linuxserver/mariadb:11.4.8 container_name: mariadb environment: PUID: 1000 PGID: 1000 TZ: Europe/Amsterdam MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: booklore MYSQL_USER: booklore MYSQL_PASSWORD: ${DB_PASSWORD} volumes: - db-data:/config restart: unless-stopped healthcheck: test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ] interval: 5s timeout: 5s retries: 10 networks: - internal volumes: booklore-data: db-data: networks: web: external: true internal: external: false