Skip to content

FrankGasparovic/readarr-rresurrected

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10,743 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

readarr-rresurrected

Because one "r" was never enough.

readarr-rresurrected is a fully working fork of Readarr that brings the project back to life after its retirement in early 2025. It bundles a self-hosted metadata service directly inside the container, replacing the defunct cloud API with a solution that requires no external dependencies and no second container.

License Issues


The Story

In early 2025, the Servarr team announced Readarr's retirement:

"The retirement takes effect immediately... the project's metadata has become unusable, we no longer have the time to remake or repair it."

The core problem: Readarr depended entirely on a Goodreads-backed cloud metadata API. When Goodreads shut down its public API, the data pipeline broke and the project had no path forward. Authors couldn't be searched, books couldn't be found, and existing libraries couldn't refresh.

The community didn't give up. @blampe built rreading-glasses, a self-hostable metadata proxy that replicated the original API surface by scraping Goodreads directly. It kept Readarr alive for many users — but required running a second service, understanding how to configure the metadata URL, and keeping both containers in sync.

readarr-rresurrected takes this further: it bakes the metadata service directly into Readarr's container, pre-configures the connection, and ships a single image that just works.


MyAnonamouse (MAM) is included as a built-in indexer option. Several bugs present in the upstream implementation have been fixed, making it fully functional out of the box.


Quick Start

Docker Compose

services:
  readarr:
    image: ricetim/readarr-rresurrected:latest
    container_name: readarr
    user: "1000:1000"
    ports:
      - "8787:8787"
    volumes:
      - readarr-config:/config
    environment:
      - GOOGLE_BOOKS_API_KEY=        # optional — improves ebook edition data
    restart: unless-stopped

volumes:
  readarr-config:
docker compose up -d
# Open http://localhost:8787

Docker Run

docker run -d \
  --name readarr \
  -p 8787:8787 \
  -v readarr-config:/config \
  --user 1000:1000 \
  ricetim/readarr-rresurrected:latest

Configuration

Environment Variables

Variable Default Description
GOOGLE_BOOKS_API_KEY (empty) Optional. Improves ebook edition discovery for books with incomplete Goodreads records. Get a key.
READARR_API_KEY (empty) Optional. Set to your Readarr API key to enable the bookinfo → Readarr refresh webhook (auto-refresh when background pagination completes).
READARR_URL (empty) Optional. Set to http://localhost:8787 when using the webhook above.
BOOKINFO_GR_RATE 3 Seconds between Goodreads page requests. Increase if you see rate-limit errors.
BOOKINFO_BATCH_SIZE 20 Works fetched per batch during background pagination.

Volumes

Path Description
/config All persistent data: database, logs, config.xml. Always mount this.

Ports

Port Description
8787 Readarr web UI and API

bookinfo binds to 127.0.0.1:28202 inside the container and is not exposed externally.


Building from Source

git clone https://github.com/ricetim/readarr-rresurrected.git
cd readarr-rresurrected
docker compose build
docker compose up -d

Local Development (without Docker)

Backend:

dotnet restore src/Readarr.sln
dotnet build src/Readarr.sln -p:Configuration=Debug -p:Platform=Posix --no-restore

Frontend:

yarn install
yarn start   # dev server with hot reload

bookinfo:

cd bookinfo
pip install -r requirements.txt
uvicorn app:app --host 127.0.0.1 --port 28202 --workers 1

Run Readarr:

_output/net6.0/Readarr --nobrowser --data=/tmp/readarr-data

Migrating from an Existing Readarr Installation

This fork is database-compatible with ghcr.io/faustvii/readarr and hotio/readarr. One migration runs automatically on first start (adds a Kca column to AuthorMetadata for Amazon KCA IDs).

  1. Stop your existing Readarr container
  2. Mount the same /config volume with this image
  3. Start — migration runs automatically, all settings and history are preserved

PostgreSQL support is untested in this fork. SQLite is recommended.


Known Limitations

  • Series data can be incomplete for some authors depending on how Goodreads represents the series relationship
  • Large author catalogs (500+ books) may take several minutes to fully paginate due to Goodreads rate limits
  • Scheduled refreshes re-fetch all works; incremental refresh (only new/changed works) is not yet implemented
  • Google Books supplement requires a valid API key to fill in ebook editions missing from Goodreads

Contributing & Issues

Found a bug? Have a feature request? Open an issue — contributions are welcome.


Credits & Acknowledgements

This project stands on the shoulders of a lot of excellent prior work:

  • The Servarr Team and all Readarr contributors — built the entire application over 10,000+ commits spanning more than a decade
  • @blampe — created rreading-glasses, the community metadata proxy that proved the Goodreads scraping approach was viable and kept Readarr alive for many users while the upstream was in decline; the name rresurrected is a nod to the double-r naming convention he established
  • @faustvii — maintained faustvii/readarr, the most widely used community Docker image for Readarr after the official images stopped being updated
  • The Goodreads GraphQL API — the underlying data source that makes author and book metadata possible

License

GNU GPL v3 — © 2010–2022 The Servarr Team. Fork maintained by @ricetim.

About

Book Manager and Automation (Sonarr for Ebooks)

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages