Files
app-catalog-felhom.eu/templates/grimmory/docker-compose.yml
T
admin 96829d0d0f
gates / gates (push) Successful in 3s
Grimmory and MeTube published behind the family gate (controller >= 0.287.0, decisions 63/64), with complete records
- family_gate / family_gate_except / min_controller format (README, REUSE); gate family-gate + decoys
- templates/grimmory (v3.5.0, exceptions OPDS/Kobo/KOReader/Komga) + onboarding/grimmory.md
- templates/metube (2026.09.29, no exceptions; ladder .28 -> .29) + onboarding/metube.md; fixture MeTube
- volume-persistence gate: routed port read from the label NAME (R-801, red-proofed); APP_EXERCISE (R-788)
- box_walk: family_cookie; no cached "not gated" while an app has no router

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-02 09:36:49 +02:00

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.5.0
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: