1
0
Files
docker-compose-templates/services/calibre-web-automated.yml
T

73 lines
3.0 KiB
YAML

---
secrets:
hardcover_api_token:
file: ../secretes/hardcover_api_token
services:
calibre-web-automated:
image: crocodilestick/calibre-web-automated:v4.0.6
container_name: calibre-web-automated
ports:
- 8090:8083
networks:
public:
ipv4_address: 192.168.240.64
labels:
# HTTP is needed for Kobo sync to work
# otherwise downloading books to device fails
caddy: "cwa.${DOMAIN}, http://cwa.${DOMAIN}, http://books.${DOMAIN_LOCAL}, books.${DOMAIN_LOCAL}"
caddy.reverse_proxy: "{{ upstreams 8083 }}"
secrets:
- hardcover_api_token
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- HARDCOVER_TOKEN=Bearer eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIYXJkY292ZXIiLCJ2ZXJzaW9uIjoiOCIsImp0aSI6IjU2ZjQ5OWU2LWU1MGQtNDY3Mi05ZTRiLTlkODk4ZGNlMzQ3YyIsImFwcGxpY2F0aW9uSWQiOjIsInN1YiI6IjM0NTIyIiwiYXVkIjoiMSIsImlkIjoiMzQ1MjIiLCJsb2dnZWRJbiI6dHJ1ZSwiaWF0IjoxNzcwMDQzNzg5LCJleHAiOjE4MDE1Nzk3ODksImh0dHBzOi8vaGFzdXJhLmlvL2p3dC9jbGFpbXMiOnsieC1oYXN1cmEtYWxsb3dlZC1yb2xlcyI6WyJ1c2VyIl0sIngtaGFzdXJhLWRlZmF1bHQtcm9sZSI6InVzZXIiLCJ4LWhhc3VyYS1yb2xlIjoidXNlciIsIlgtaGFzdXJhLXVzZXItaWQiOiIzNDUyMiJ9LCJ1c2VyIjp7ImlkIjozNDUyMn19.kfoxQotcFvuoPYBiLCJV3YCpV-iEVMV-TYq-Ywodv40
volumes:
- ${CWA_CONFIG_DIR}:/config
# calibre-web-automated only supports one library as of 2026-01-12
- "${DOCKER_STORAGE_PATH_SLOW}/syncthing/shares/Calibre Library/Lukáš:/calibre-library"
- ${CWA_INGEST_DIR}:/cwa-book-ingest
- ${DOCKER_STORAGE_PATH}/calibre-web-automated/plugins:/config/.config/calibre/plugins
- ${DOCKER_STORAGE_PATH}/calibre-web-automated/customize.py.json:/config/.config/calibre/customize.py.json
restart: unless-stopped
shelfmark:
image: ghcr.io/calibrain/shelfmark:1.2.3
container_name: shelfmark
environment:
TZ: ${TZ}
PUID: ${PUID}
PGID: ${PGID}
CWA_DB_PATH: "/auth/app.db"
HIDE_LOCAL_AUTH: true
OIDC_AUTO_REDIRECT: true
AUTH_METHOD: oidc
OIDC_DISCOVERY_URL: https://authentik.kucharczyk.xyz/application/o/shelfmark/.well-known/openid-configuration
OIDC_CLIENT_ID: ke4aOPqcmal0MIhbMAZutFtpaNQjQwXegMzKCmrW
OIDC_CLIENT_SECRET: 4EbpJ1P0yAIpy6WcUUPFC4kSFo1Rkvf2hjAl9IlulR6vpZouaHgUNeFHBaiHtTCWSnjlyy2iGTwtDwL12PfETabzdYCCe0s7GL2Hx4XaoRffqk3dI7ApPCcQONIhuIo0
OIDC_BUTTON_LABEL: Sign in with Authentik
networks:
public:
ipv4_address: 192.168.240.68
labels:
caddy: shelfmark.${DOMAIN_LOCAL}
caddy.reverse_proxy: "{{ upstreams 8084 }}"
ports:
- 8084:8084
restart: unless-stopped
volumes:
- ${DOCKER_STORAGE_PATH}/calibre-web-automated-downloader/config:/config
# point to the same ingest folder as calibre-web-automated
- ${CWA_INGEST_DIR}:/cwa-book-ingest
# re-use calibre-web-automated user database
- ${CWA_DB_FILE}:/auth/app.db:ro
- "${DOWNLOADS_PATH}/sabnzbd:/downloads"
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8084/api/health"]
interval: 30s
timeout: 30s
retries: 3