Files
deploy/booklore/compose.yaml
2026-01-04 15:35:22 +01:00

66 lines
1.9 KiB
YAML

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:
- /srv/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
- traefik.http.services.booklore.loadbalancer.server.port=6060
# Buffering middleware equivalent to nginx proxy buffer settings
- traefik.http.middlewares.booklore-buffering.buffering.maxRequestBodyBytes=1048576
- traefik.http.middlewares.booklore-buffering.buffering.maxResponseBodyBytes=1048576
- traefik.http.middlewares.booklore-buffering.buffering.memRequestBodyBytes=131072
- traefik.http.routers.booklore.middlewares=booklore-buffering
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:
db-data:
networks:
web:
external: true
internal:
external: false