Files
felhom.eu/documentation/audits/new-apps-2026-10-01/wip/grimmory/docker-compose.yml
T

92 lines
3.1 KiB
YAML

# Grimmory - E-könyvtár (a BookLore közösségi utódja): könyvek, olvasó, OPDS, Kobo és KOReader szinkron
# Domain: ${SUBDOMAIN}.${DOMAIN}
# Database: MariaDB 11.4 (the major upstream's own compose runs — `09` decision 42's rule; the official image, so
# MARIADB_AUTO_UPGRADE=1 as every catalog MariaDB sidecar, R-459)
# RAM: ~700M (mem_limit: 1408M total — app 1024M + db 384M) | Pi-compatible: Yes (amd64, arm64)
#
# Environment variables:
# DOMAIN - Your domain (e.g., demo-felhom.eu)
# HDD_PATH - A meghajtó, amelyen a könyvtár él
# DB_PASSWORD - Adatbázis jelszó (generált; csak a belső hálón)
# DB_ROOT_PASSWORD - Adatbázis root jelszó (generált; csak a belső hálón)
#
# Folders: the books in ${USERDATA_PATH}/media/grimmory (the household sees and fills it), the drop-in inbox in
# ${IMPORT_PATH}/grimmory (BookDrop: a file put there is offered for import), covers/cache in ${HDD_PATH}/appdata.
# Mirrors upstream's deploy/compose/docker-compose.yml, pinned; OIDC off, Swagger off.
services:
grimmory:
image: ghcr.io/grimmory-tools/grimmory:v3.4.1
container_name: grimmory
restart: unless-stopped
environment:
- TZ=Europe/Budapest
- USER_ID=1000
- GROUP_ID=1000
- DATABASE_URL=jdbc:mariadb://grimmory-db:3306/grimmory
- DATABASE_USERNAME=grimmory
- DATABASE_PASSWORD=${DB_PASSWORD}
- SWAGGER_ENABLED=false
- FORCE_DISABLE_OIDC=true
volumes:
- ${HDD_PATH}/appdata/grimmory/data:/app/data
- ${USERDATA_PATH}/media/grimmory:/books
- ${IMPORT_PATH}/grimmory:/bookdrop
networks:
- traefik-public
- grimmory-internal
depends_on:
grimmory-db:
condition: service_healthy
deploy:
resources:
limits:
memory: 1024M
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:6060/api/v1/healthcheck"]
interval: 30s
timeout: 5s
retries: 5
start_period: 120s
labels:
- "traefik.enable=true"
- "traefik.http.routers.grimmory.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.grimmory.entrypoints=websecure"
- "traefik.http.routers.grimmory.tls=true"
- "traefik.http.routers.grimmory.tls.certresolver=letsencrypt"
- "traefik.http.services.grimmory.loadbalancer.server.port=6060"
grimmory-db:
image: mariadb:11.4
container_name: grimmory-db
restart: unless-stopped
environment:
- TZ=Europe/Budapest
- MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MARIADB_DATABASE=grimmory
- MARIADB_USER=grimmory
- MARIADB_PASSWORD=${DB_PASSWORD}
- MARIADB_AUTO_UPGRADE=1
volumes:
- grimmory_db:/var/lib/mysql
networks:
- grimmory-internal
deploy:
resources:
limits:
memory: 384M
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
volumes:
grimmory_db:
networks:
traefik-public:
external: true
grimmory-internal: