Skip to content

Repository files navigation

Dewarr logo

Dewarr

Your reading lists, audiobook library, and downloads in one place.

Dewarr For you page

Features

  • Library integration — connect Audiobookshelf or Grimmory, see what you own, and import completed downloads into verified library folders.
  • Chapterized M4B — merge a multi-file MP3 download into one audiobook, with a chapter per file, before library import. The download itself stays unchanged.
  • Goodreads sync — follow shelves, import CSV exports, and check for new books automatically.
  • Author and series follows — monitor future books with reviewed back-catalog selection, filters, exclusions, and release-day acquisition.
  • Hardcover sync — track your lists and lists you follow, including private lists your account can access.
  • Custom Goodreads lists — add public lists, track changes, and pin them to your discovery page.
  • For you — personalize shelves with followed lists, recommendations, trending books, and new releases.
  • Auto download — find and select eligible releases using list policies and approved import routes.
  • Download priorities — rank sources and formats, apply size and seed preferences, and control download capacity.
  • Book discovery — browse collections, awards, authors, and series.
  • Download sources — connect MyAnonamouse, Prowlarr, and AudiobookBay; send transfers to qBittorrent.
  • Notifications — personal and installation alerts through Discord, ntfy, Apprise, and JSON webhooks, with discovery digests. Setup and payload documentation.
  • Shared library — individual accounts, reading lists, permissions, and download activity.
  • Self-hosted — Docker, PostgreSQL, and an MIT license.

Early release. Automatic downloads are off by default. Goodreads RSS imports can be partial; CSV import fills historical gaps. See reading accounts for sync behavior.

Quick start

Run Dewarr + PostgreSQL. Dewarr handles migrations and background jobs automatically. No Git, Python, setup script, or .env file is required.

latest tracks stable releases; use a vX.Y.Z tag to pin a release. The optional edge tag follows checked builds of main.

Choose an option below. Set both database passwords to the same value. For access from another computer, change PUBLIC_URL to http://your-server:8000.

Docker Compose — recommended

Save this as compose.yaml. Adjust PUID, PGID, and the folders to match your server.

name: dewarr

services:
  dewarr:
    image: ghcr.io/logabell/dewarr:latest
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Etc/UTC
      PUBLIC_URL: http://localhost:8000
      DB_HOST: postgres
      DB_NAME: dewarr
      DB_USER: dewarr
      DB_PASSWORD: change-me
    volumes:
      - ./config:/config
      - ./data:/data
    ports:
      - "8000:8000"
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped
    stop_grace_period: 35s

  postgres:
    image: postgres:18
    environment:
      POSTGRES_DB: dewarr
      POSTGRES_USER: dewarr
      POSTGRES_PASSWORD: change-me
    volumes:
      - postgres:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dewarr -d dewarr"]
      interval: 5s
      timeout: 5s
      retries: 12
    restart: unless-stopped

volumes:
  postgres:
mkdir -p config data
docker compose up -d
Docker CLI — download the Compose file
mkdir dewarr
cd dewarr
curl -fsSL https://raw.githubusercontent.com/logabell/dewarr/main/compose.yaml -o compose.yaml

Edit the passwords, PUBLIC_URL, and folder paths in compose.yaml, then start:

mkdir -p config data
docker compose up -d
Docker run — without Compose

Change both change-me passwords to the same value before running these commands.

mkdir -p config data
docker network create dewarr
docker volume create dewarr-postgres

docker run -d \
  --name dewarr-postgres \
  --network dewarr \
  -e POSTGRES_DB=dewarr \
  -e POSTGRES_USER=dewarr \
  -e POSTGRES_PASSWORD=change-me \
  -v dewarr-postgres:/var/lib/postgresql \
  --restart unless-stopped \
  postgres:18

docker run -d \
  --name dewarr \
  --network dewarr \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e PUBLIC_URL=http://localhost:8000 \
  -e DB_HOST=dewarr-postgres \
  -e DB_NAME=dewarr \
  -e DB_USER=dewarr \
  -e DB_PASSWORD=change-me \
  -p 8000:8000 \
  -v "$PWD/config:/config" \
  -v "$PWD/data:/data" \
  --stop-timeout 35 \
  --restart unless-stopped \
  ghcr.io/logabell/dewarr:latest

Already have PostgreSQL? Skip its container and use your existing database host, name, user, and password in the Dewarr command.

Open localhost:8000, or your server's address, and create your first account. Connect Audiobookshelf or Grimmory, Goodreads, Hardcover, and download clients in Settings.

Before creating a Hardcover token, enable read:catalog, read:me:content, read:lists, read:library:public, read:users, and write:lists. Create a token with those scopes selected. The Metadata setup screen lists what each scope is for. Details are in reading accounts. To let Authentik, Pocket ID, or Authelia manage later sign-ins, see OpenID Connect. To let a household sign in with Plex, see Plex sign-in.

Dewarr creates its encryption key in /config on first start. Keep that folder and the PostgreSQL volume when updating.

Settings, folders, backups, and upgrades · Download clients · MAM proxy setup · Request quotas · Contributing

Screenshots

Actual Dewarr UI captured with an isolated demo account. Connected services and library contents depend on your setup.

Browse books

Browse discovery shelves

Collections and awards

Book collections Reading awards

Reading accounts

Goodreads and Hardcover connections

Download preferences

Download preferences and priorities

Library connections

Audiobookshelf library settings

Updates

docker compose pull
docker compose up -d

Back up config and PostgreSQL first. Dewarr applies database migrations automatically. Backup instructions.

Contributors

Thanks to @Porthorion for contributing AudiobookBay fixes through #42, #43, and #44: retrying capitalized searches, matching series-numbered releases, and linking completed downloads to their catalog books. Their changes were adapted with additional identity safeguards in 16879ba and shipped in v0.3.5.

See also all commit contributors and the contributor acknowledgments in our release notes.

License

MIT. Third-party libraries and assets retain their own licenses; see notices.

About

Self-hosted audiobook discovery, Goodreads and Hardcover lists, Audiobookshelf integration, and automatic downloads.

Topics

Resources

Stars

107 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages