services: pagemanager.api: image: pagemanager.api build: context: ./PageManager.Api dockerfile: PageManager.Api/Dockerfile ports: - "5278:8080" environment: - ASPNETCORE_ENVIRONMENT=Production - ConnectionStrings__Postgres=${POSTGRES_CONNECTION_STRING} - Torrent__QBittorrentUrl=http://qbittorrent:8080 - Torrent__SavePath=/data/books/incoming volumes: - books:/data/books - audiobooks:/data/audiobooks depends_on: - qbittorrent pagemanager.web: image: pagemanager.web build: context: ./PageManager.Web dockerfile: Dockerfile ports: - "8080:80" depends_on: - pagemanager.api # Optional: self-hosted qBittorrent (comment out if using an external instance) qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - WEBUI_PORT=8080 volumes: - qbt-config:/config - books:/data/books ports: - "6881:6881" - "6881:6881/udp" - "8090:8080" # WebUI on host port 8090 to avoid conflict with pagemanager.web # Optional: Prowlarr indexer aggregator (comment out if not needed) # prowlarr: # image: lscr.io/linuxserver/prowlarr:latest # environment: # - PUID=1000 # - PGID=1000 # - TZ=Etc/UTC # volumes: # - prowlarr-config:/config # ports: # - "9696:9696" volumes: books: audiobooks: qbt-config: