services: bindery: build: . image: bindery:latest # The user and group that own ./config and can write CWA's ingest folder. Usually the same as CWA's. user: "1000:1000" environment: # Omit this and its volume mount to keep uploads paused. INGEST_DIR: /cwa-book-ingest # The address of CWA, as the Bindery container reaches it, and the CWA account that Bindery uses. # Leave the account out if CWA asks for no login. CWA_URL: http://calibre-web-automated:8083 CWA_USERNAME: bindery CWA_PASSWORD: change-me # none, local (one Bindery account), cwa (CWA accounts), or proxy (a trusted user header) AUTH_METHOD: cwa # For local logins, put these values in .env. See "Local login" in the README. # BINDERY_USERNAME: ${BINDERY_USERNAME:-} # BINDERY_PASSWORD_HASH: ${BINDERY_PASSWORD_HASH:-} # Optional and independent. app.db is for logins, metadata.db is for book IDs. # CWA_DB_PATH: /cwa-config/app.db # CALIBRE_DB_PATH: /calibre-library/metadata.db # URL_BASE: /bindery # The host names that Bindery answers to. AUTH_METHOD=none needs this for a public name such as this one. # ALLOWED_HOSTS: bindery.example.com # true only if clients reach Bindery through a reverse proxy alone. The login lockout then uses X-Forwarded-For. # TRUST_PROXY: "true" # For AUTH_METHOD=proxy: the address of the proxy. The default trusts each private address. # PROXY_AUTH_TRUSTED_IPS: 172.18.0.3 # For the cwa and proxy modes: the users that can change the global settings. Without a list, each user can. # BINDERY_ADMIN_USERS: alice, bob # BINDERY_API_KEY: a-long-random-string ports: # If a reverse proxy on this host is the only way in, publish the port only on the host: 127.0.0.1:8085:8085 - 8085:8085 restart: unless-stopped # /api/health needs no login, and works with and without URL_BASE. healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8085/api/health', timeout=5)"] interval: 60s timeout: 10s start_period: 30s retries: 3 volumes: # CWA's ingest folder. New stories and updates go here. Bindery does not make the folder. - /path/to/cwa/ingest:/cwa-book-ingest # The story database and personal.ini. Create the folder before the first start. - ./config:/config # Optional read-only folders. Include SQLite journal files beside each database. # Mount the library that receives the ingest files, not a copy or another library. # - /path/to/cwa/config:/cwa-config:ro # - /path/to/calibre/library:/calibre-library:ro