39 lines
1.3 KiB
YAML
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:
|