Files
bookish-fork-dokerized/docker-compose.yml
T
truetype 3681fd95eb
deps-checksum / checksum lockfile (push) Canceled after 0s
CI / pytest (3.12) (push) Canceled after 0s
CI / Docker smoke test (push) Canceled after 0s
feat(R7): metrics + JSON logs + security headers
2026-08-31 16:24:51 +02:00

39 lines
1.3 KiB
YAML

services:
bookish:
build:
context: .
args:
# Riproducibilita (R4b): sha256 di requirements.lock. Default = hash
# corrente; in dev puoi sovrascriverlo con REQUIREMENTS_CHECKSUM=""
REQUIREMENTS_CHECKSUM: ${REQUIREMENTS_CHECKSUM:-d13e4fb14a909e0bd06d20894860152d5334aa341dd9dec2e5e4ca368a0d2a62}
image: bookish:local
ports:
- "${PORT:-5000}:5000"
environment:
BOOKISH_SECRET: ${BOOKISH_SECRET:?Copia .env.example in .env e imposta BOOKISH_SECRET}
BOOKISH_DATA_DIR: /data
BOOKISH_DEBUG: "false"
BOOKISH_CLEANUP_HOURS: ${BOOKISH_CLEANUP_HOURS:-1}
# Sicurezza opzionale
BOOKISH_AUTH_USERNAME: ${BOOKISH_AUTH_USERNAME:-}
BOOKISH_AUTH_PASSWORD: ${BOOKISH_AUTH_PASSWORD:-}
BOOKISH_RATE_LIMIT_UPLOAD: ${BOOKISH_RATE_LIMIT_UPLOAD:-20}
# Osservabilità: "json" = logging strutturato (1 riga JSON per log)
LOG_FORMAT: ${LOG_FORMAT:-}
# Timeout conversioni (s); default 300 — alza per libri lunghi
BOOKISH_CONVERSION_TIMEOUT: ${BOOKISH_CONVERSION_TIMEOUT:-300}
PORT: "5000"
volumes:
- bookish-data:/data
restart: unless-stopped
mem_limit: 1g
cpus: "1.0"
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp
stop_grace_period: 30s
volumes:
bookish-data: