Files
kendricklab/books/booklore/docker-compose.yml

72 lines
2.1 KiB
YAML

services:
booklore:
image: booklore/booklore:latest
# Alternative: Use GitHub Container Registry
# image: ghcr.io/booklore-app/booklore:latest
container_name: booklore
environment:
- USER_ID=${APP_USER_ID}
- GROUP_ID=${APP_GROUP_ID}
- TZ=${TZ}
- DATABASE_URL=${DATABASE_URL}
- DATABASE_USERNAME=${DB_USER}
- DATABASE_PASSWORD=${DB_PASSWORD}
- BOOKLORE_PORT=${BOOKLORE_PORT}
depends_on:
mariadb:
condition: service_healthy
expose:
- "${BOOKLORE_PORT}"
labels:
# Traefik
traefik.enable: "true"
traefik.http.routers.booklore.rule: "Host(`booklore.${DOMAIN}`)"
traefik.http.routers.booklore.entrypoints: "https"
traefik.http.routers.booklore.tls.certresolver: "cloudflare"
traefik.http.routers.booklore.service: "booklore"
traefik.http.services.booklore.loadbalancer.server.port: "${BOOKLORE_PORT}"
# Homepage
homepage.group: "Books"
homepage.name: "BookLore"
homepage.icon: "booklore.png"
homepage.href: "https://booklore.${DOMAIN}"
homepage.description: "Book Manager"
networks:
- traefik_public
- default
volumes:
- ${CONFIG_ROOT}/booklore/data:/app/data
- ${MEDIA_PATH}/books:/books
- ${MEDIA_PATH}/bookdrop:/bookdrop
healthcheck:
test: wget -q -O - http://localhost:${BOOKLORE_PORT}/api/v1/healthcheck
interval: 60s
retries: 5
start_period: 60s
timeout: 10s
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.5
container_name: mariadb
environment:
- PUID=${DB_USER_ID}
- PGID=${DB_GROUP_ID}
- TZ=${TZ}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- ./mariadb/config:/config
restart: unless-stopped
healthcheck:
test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ]
interval: 5s
timeout: 5s
retries: 10
networks:
traefik_public:
external: true