Opens a larger view. Escape closes it.

home-server

docker-compose.yml

services:

  kobodl:
    image: python:3.12-alpine
    container_name: kobodl
    ports:
      - "5679:5678"
    security_opt:
      - label=disable
    volumes:
      - /path/to/home/books/config/kobodl/kobodl.json:/root/.config/kobodl.json:z
      - /path/to/home/books/config/kobodl/sort.sh:/sort.sh:z
      - /path/to/home/books/config/kobodl/abs_token:/root/.config/abs_token:z
      - /path/to/home/books/kobo:/downloads:z
      - /path/to/home/books/ingest:/ingest:z
    environment:
      - TZ=Asia/Kolkata
    entrypoint: []
    command: >
      sh -c "
        pip install kobodl -q &&
        echo 'kobodl ready' &&
        kobodl serve --host 0.0.0.0 --port 5678 &
        while true; do
          if kobodl user list 2>/dev/null | grep -q '@'; then
            echo '[cron] syncing Kobo library...' &&
            kobodl book get --get-all --format-str '{Author}/{Title}' --output-dir /downloads 2>&1 | tail -10 && sh /sort.sh;
          else
            echo '[cron] no user — authenticate at http://192.168.1.61:5678';
          fi;
          sleep 300;
        done
      "
    restart: always

  calibre-web-automated:
    image: ghcr.io/crocodilestick/calibre-web-automated:latest
    container_name: calibre-web-automated
    ports:
      - "8083:8083"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Kolkata
    volumes:
      - /path/to/home/books/config/cwa:/config:z
      - /path/to/home/books/library:/calibre-library:z
      - /path/to/home/books/ingest:/cwa-book-ingest:z
    restart: always

  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    ports:
      - "13378:80"
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Kolkata
    security_opt:
      - label=disable
    volumes:
      - /path/to/home/books/config/audiobookshelf:/config:z
      - /path/to/home/books/config/audiobookshelf/metadata:/metadata:z
      - /path/to/home/books/kobo/audiobooks:/audiobooks:z
      - /path/to/home/books/podcasts:/podcasts:z
    restart: always