ChaptarrNG

ChaptarrNG

Docker app from chaptarrng's Repository

Overview

Built on .NET 10 LTS, ChaptarrNG manages audiobook and eBook libraries with format-aware automation and optional SeerrNG integration.
ChaptarrNG logo

ChaptarrNG

A Snapetech-maintained Chaptarr fork for audiobook and eBook libraries.

License .NET 10 LTS Discord

Support ChaptarrNG development on Ko-fi.

ChaptarrNG is beta software. It is under active development, and breaking changes are possible. Keep regular backups and avoid pointing it at a library you cannot afford to lose.

What is ChaptarrNG?

ChaptarrNG is Snapetech's maintained fork of Chaptarr, which is itself an independent Readarr-derived audiobook and eBook library manager. ChaptarrNG keeps that standalone library-management experience while maintaining the request and format APIs used by SeerrNG.

We forked Chaptarr so SeerrNG can rely on a book backend with explicit ebook/audiobook routing and durable handling for imports that Chaptarr queues while preparing author metadata. Maintaining the API contract here lets SeerrNG track a request through that asynchronous work without depending on upstream changes landing first. ChaptarrNG runs on its own and does not require SeerrNG.

The application continues to identify itself as Chaptarr through its Readarr-compatible API so SeerrNG can detect it. ChaptarrNG is the name of this maintained repository, its container image, and its Unraid template.

For local MCP access, see the SnapeTech MCP integration guide.

BookshelfNG migration status

ChaptarrNG v0.9.977 is the current published release. It includes the migration and rollback tools for BookshelfNG SQLite, plus the embedded source migration chain. The BookshelfNG helper creates an appdata archive before it runs the tools. ChaptarrNG also initializes new author format paths from configured defaults, a behavior released in v0.9.974; explicit roots and existing authors are left alone. The next version bump is not a release: publication is frozen until the BookshelfNG migration, rollback, feature-parity, and install-channel acceptance gates are closed. The merged release and distribution workflows fail closed unless CHAPTARRNG_RELEASE_READY=true; that repository variable remains unset. Read the migration guide before switching.

The source migration runs on a disposable copy and keeps the original database for rollback. A populated synthetic v22 SQLite fixture upgrades through the embedded chain, converts, and rolls back; preview leaves the source unchanged, and a future schema is rejected. The published .977 release currently rejects pre-migration-14 databases because their Blacklist table must first be renamed by the embedded chain. The version-aware fix and authentic migration-1 fixture passed the hosted Linux, macOS, Windows, and PostgreSQL migration checks in PR #126 and are on main, but are not in public .977. No release will be cut until the full retirement acceptance gates close; the merged release and distribution workflows now require CHAPTARRNG_RELEASE_READY=true. This is not yet real-data evidence or proof for every historical release. PostgreSQL BookshelfNG databases and two populated source databases are not supported. Books with no recorded format are retained in both ChaptarrNG catalogs, unmonitored, with a private review file so the operator can classify them after startup. The helper does not copy external media/download folders, translate every external setting, or update pinned images and package channels. The legacy bridge remains disabled. ChaptarrNG PR #127 merged to main as b3089a39, adding selectable supplemental catalogs, per-field metadata preferences, and exact-identity recovery for unmapped files. It is not in public v0.9.977; provider/settings behavior on converted operator data still needs acceptance. The current converter retains BookImportMinimumMatchPercent and maps it to the closest BookMatchingStrictness mode: 50–66 to Aggressive, 67–82 to Balanced, and 83–99 to Strict. The original number stays in the imported config and the migration report names the translation. It is an approximation: the two applications use different fuzzy parsing and import-scoring algorithms. An explicit ChaptarrNG strictness value takes precedence, and an invalid legacy value stops conversion. PR #129 merged to main as 949ae3dd with the opt-in M4B merge settings, tagged track order and chapter titles, original-track fallback, and move/copy source handling. Its clean head passed hosted platform and database checks. A synthetic two-track smoke validates the external converter and chapter sidecar only; importer end-to-end and representative-media acceptance remain open. Neither source change is in public .977. Full feature parity and several package-channel upgrades remain unverified. See the retirement status and channel matrix for the current release and acceptance gates.

ChaptarrNG is independently maintained and is not affiliated with the Servarr team or the Readarr, Sonarr, Radarr, Lidarr, or Prowlarr projects.

The backend is built on .NET 10 LTS. Docker images include the ASP.NET Core runtime, while source builds require the .NET 10 SDK.

What makes this fork different

  • SeerrNG contract: SeerrNG can discover provider IDs, format routes, paged library scans, and pending-import operations through GET /api/v1/system/capabilities. Both format services can use one ChaptarrNG instance while requests retain the selected format and provider identity.
  • Pending-import integration: Chaptarr's current development branch also has pending author imports. ChaptarrNG exposes that asynchronous work through the SeerrNG capability contract and keeps retry/cancel behavior safe when multiple requests share an import.
  • Restricted service access: ChaptarrNG 0.9.941 and later can use a SeerrNG-only API key for supported book requests, searches, library status, and pending imports without granting global administration or destructive access.
  • Standalone additions maintained here: An optional built-in indexer and download client can search configured ebook sources, use API-key downloads, and optionally fall back to browser-assisted links. Full backup archives can use passphrase-based authenticated encryption; the direct Chaptarr project separately offers encryption for quick-start settings backups.
  • Safer list and file workflows: Preview an import list's next sync, inspect durable per-list sync history, and review manual-import matching evidence. Book-file downloads are limited to configured roots; imports check destinations before writing, extract supported archives, and can merge or convert multipart audiobooks with progress and cancellation. New multi-part releases can remain as separate book files.
  • More metadata and library connections: RanobeDB adds light-novel ebook metadata; Audible searches can use a selected marketplace. Metadata profiles can rank edition terms and choose preferred series. AudioBookShelf, Calibre, Grimmory, and BookLore BookDrop provide optional library connections, while Emby/Jellyfin can refresh after an import.
  • Search and library maintenance: Indexers can run optional recurring searches for missing monitored books. MyAnonaMouse health reports explain when stale account status blocks grabs. Operators can preview and backfill missing author root folders without moving files.
  • Operations and automation: An optional MQTT gateway publishes library snapshots and lifecycle events, including Home Assistant discovery. A separate Prometheus listener exposes low-cardinality metrics. The full-library API supports paging, large library views use paged reads, and long author deletions run in the background.
  • Localization: The interface and help text have catalogs for 12 additional languages, including Indonesian and Traditional Chinese, with English fallback for untranslated strings.
  • Fork-owned distribution: ChaptarrNG publishes its own images and maintains an Unraid package. Its fork feature guide compares these additions with the parent project.

The fork feature guide covers the additions and their limits. Dedicated guides explain import-list preview and history, external library connections, MQTT and canonical events, and Prometheus metrics. The changelog records changes by released version. The feature guide describes the current source checkout; some newer work may not be included in the latest published image yet.

The ChaptarrNG retirement matrix defines the cumulative upstream gate: every BookshelfNG feature carried over and every ChaptarrNG feature introduced or maintained through v0.9.977 blocks retirement as a whole and remains an individual acceptance gate. Carrying over a BookshelfNG capability adds to this set; it does not replace or reduce ChaptarrNG's own blockers.

See the SeerrNG Bookshelf backend guide for setup and the integration contract.

Key Features

Audiobooks

  • Narrator Aware - Can help recognize and organize your books with narrator info
  • Format-scoped books and requests - Track ebook and audiobook records separately while one ChaptarrNG instance serves both; SeerrNG can route each request to its matching format
  • Publisher Aware - Special handling for dramatized audiobooks and multi-part releases
  • Audio Formats - Handles M4B, MP3 chapters, and multi-file audiobooks
  • MP3 → M4B Conversion - Convert new downloads or books already in the library into a single chaptered M4B, with chapter preservation or insertion if missing. Conversion shows progress and can be cancelled (powered by m4b-tool)
  • Multipart Audiobooks - Import numbered parts side by side with {ReleasePart} and {ReleaseParts} filename tokens, or optionally merge eligible downloads into one M4B after checking the final destination

Organization

  • Dual Media Libraries - You can have separate root folders for audiobooks and eBooks or choose to have your eBooks placed alongside your audiobooks
  • Format-specific author paths - New authors inherit missing audiobook and ebook roots from configured defaults; explicit roots remain unchanged, and existing authors or files are not modified
  • Matching - Match audiobook and eBook files using tags, folders, and release metadata
  • Series Management - Automatically organize books by series
  • Metadata Profiles - Control allowed languages, rank preferred edition terms, and choose the series name used in filenames and generated metadata. Stronger match evidence remains authoritative.
  • Genre Filtering - Exclude configured genres, such as comics or graphic novels, through metadata profiles
  • Flexible Renaming - Customizable file naming with audiobook-specific tokens

Integration & Automation

  • *Standard arr Integrations - Works with the usual *arr-family download clients and indexer protocols
  • External Libraries - Connect AudioBookShelf, Calibre Content Server, and Grimmory for supported refresh, import, metadata, cover, and edit-forwarding workflows; see the integration guide for the direction and limits of each connection
  • BookLore BookDrop - Optionally upload imported files to BookLore's BookDrop intake; BookLore is an external app and is not required to run ChaptarrNG. See the BookLore integration guide for setup, supported file handling, and the unverified BookOrbit transition.
  • Emby and Jellyfin - Refresh the media-server library after a grabbed release is imported
  • MQTT and Webhooks - Publish snapshots and canonical lifecycle events to MQTT, with optional Home Assistant discovery and opt-in canonical events for existing webhooks
  • Import Lists - Preview the next sync and review durable per-list history before relying on automatic-add behavior

Quality & Upgrades

  • Automatic Upgrades - Replace lower quality versions automatically
  • Profile Flexibility - Create custom quality profiles for different libraries

Metadata

ChaptarrNG does not use Readarr's metadata-provider plugin protocol. It uses Chaptarr's modular pipeline to resolve entities across metadata providers and aggregate their data through automated refinement and consensus. The current source checkout also includes optional Open Library, Google Books, Library of Congress, Gutendex, Internet Archive, NDL, Europeana, and Apify catalogs, plus per-field source preferences. These additions are not in public v0.9.977. See the supplemental metadata guide for configuration and provider identity details.

For light-novel eBooks, ChaptarrNG can search RanobeDB explicitly and store its work and release IDs alongside the normal eBook records. RanobeDB's public API is currently v0 and is for non-commercial use; ChaptarrNG applies a conservative local request throttle below the API's 60-per-minute guidance. ChaptarrNG links results back to RanobeDB and does not import its descriptions or cover images, which have separate licensing conditions. If several instances or other clients share an IP address, keep their combined requests below the service limit. See the RanobeDB API documentation and database licensing notes before enabling this source.

Audible search and ASIN lookups can use a configured marketplace for the US, UK, France, Germany, Italy, Spain, Canada, Australia, India, Japan, or Brazil. Results use that storefront's language headers and link back to the selected marketplace.

Getting Started

Docker is the primary maintained installation. Releases also include standalone Linux and Windows archives, with package-manager feeds available on selected platforms. Publication and upgrade coverage varies by channel; check the package status before choosing one. For a BookshelfNG move, start with the migration guide.

ChaptarrNG uses ImageSharp to resize cover images. ImageSharp 4 requires a valid Six Labors license when building this direct dependency from source. Official ChaptarrNG images contain a licensed build and do not need a build key configured at runtime. All use remains subject to Six Labors' license terms. See the ImageSharp build-license guide for eligibility, acquisition, and build setup.

Docker

Pull the image:

docker pull ghcr.io/snapetech-org/chaptarrng:latest

Run with Docker:

docker run -d \
  --name chaptarrng \
  -p 127.0.0.1:8789:8789 \
  -e PUID=1000 \
  -e PGID=1000 \
  -v /path/to/config:/config \
  -v /path/to/audiobooks:/audiobooks \
  -v /path/to/ebooks:/ebooks \
  -v /path/to/downloads:/downloads \
  --restart unless-stopped \
  ghcr.io/snapetech-org/chaptarrng:latest

Note: if PUID/PGID are not set, the image defaults to 99:100. If /path/to/config doesn't exist, Docker will create it as root:root. Create it first (or fix ownership) so it matches PUID/PGID. Avoid setting user: in Compose; it bypasses the entrypoint permission setup. On Unraid, media folders commonly use 99:100, so use PUID=99 and PGID=100 unless your share is owned differently. If multiple containers/users share the same media group, add -e UMASK=002. When testing permissions with docker exec, test as the app user, not root, for example: docker exec -u 99:100 chaptarrng sh -c 'id; touch /audiobooks/.chaptarr-write-test && rm /audiobooks/.chaptarr-write-test'.

The host port is bound to loopback by default. To expose ChaptarrNG directly on your LAN, change the mapping to -p 8789:8789 and restrict access with your firewall or reverse proxy. If SeerrNG runs in another container, attach both containers to a shared Docker network and use http://chaptarrng:8789; do not use localhost from inside SeerrNG.

Or use Docker Compose:

wget https://raw.githubusercontent.com/snapetech-org/chaptarrng/main/docker-compose.yml
# Edit paths in docker-compose.yml
docker compose up -d

Memory limits for large libraries

The Compose example does not set a memory limit because the right value depends on the host and library. For a large initial scan, set a container limit sized for the memory the host can spare. Without a cgroup limit, .NET may size its garbage-collection heap from all the memory visible to the process, including the full VM or host. Docker Compose's mem_limit sets a container memory limit; .NET uses that limit when sizing its heap. On a Docker-in-LXC setup, make sure the Docker container itself has a limit visible inside the container rather than relying only on the LXC allocation.

For example, add this under the chaptarrng service and choose a value that fits your host and workload:

mem_limit: 4g # Example only; size this for your host and library.

When a container memory limit is visible, .NET's default GC heap hard limit is 75% of that limit. If you choose to override it with DOTNET_GCHeapHardLimitPercent, note that .NET parses the environment-variable value as hexadecimal: 55 (or 0x55) means 85%, while 85 means 133%. Consider the memory needed outside the GC heap before increasing the percentage. See Microsoft's .NET GC configuration reference for details.

PostgreSQL (Optional)

ChaptarrNG supports using an external PostgreSQL database instead of the default SQLite chaptarr.db file. To enable it, set at least Chaptarr__Postgres__Host (and credentials).

Environment variables:

  • Chaptarr__Postgres__Host
  • Chaptarr__Postgres__Port (default: 5432)
  • Chaptarr__Postgres__User
  • Chaptarr__Postgres__Password
  • Chaptarr__Postgres__MainDb (default: chaptarr-main)
  • Chaptarr__Postgres__LogDb (default: chaptarr-log)
  • Chaptarr__Postgres__CacheDb (default: chaptarr-cache)
  • Chaptarr__Postgres__SslMode (optional: disable, allow, prefer, require, verify-ca, or verify-full; when unset the Npgsql default applies)
  • Chaptarr__Postgres__RootCert (optional: path to a PEM root certificate used to verify the server for verify-ca and verify-full; startup fails with a clear message if the file is missing)
  • Chaptarr__Postgres__NoResetOnClose (default: true; skips the session reset round-trip when a pooled connection is returned, set to false to restore it)

Note: ChaptarrNG does not create PostgreSQL databases automatically; create the databases and grant the configured user access.

Direct Download sources

Direct Download is an optional, built-in ebook indexer and download client. It does not provide audiobook searches, recent-item feeds, or automatic discovery of arbitrary sources. Configure it only with sources you are allowed to access and use.

Configure the indexer

  1. Add the Direct Download indexer.
  2. Enter one absolute http:// or https:// URL per line in URLs.
  3. Enter an API Key when the source supports fast downloads, or enable Enable Slow-Download Browser Fallback when you need browser-assisted links. At least one download method is required.
  4. Save the indexer and select the Direct Download client for it.

Blank lines are ignored. Duplicate URLs are removed case-insensitively, and trailing slashes are normalized. The first occurrence remains in the configured order. Chaptarr never reorders the list or stores probe health as part of the settings. The provider Test action validates the URL list and, when an API key is configured, checks it against the first source without requesting a real file. A successful Test does not search for a book or prove that a title is available.

The API Key field is masked. A saved key is preserved when the indexer is edited or included in a settings backup, while API responses, logs, and validation errors must not reveal its value. Do not put credentials in a URL. If different URLs use different credentials, create separate indexers rather than placing them in one fallback list. A key must not be copied into a fallback URL or sent to a host that was not selected for the request.

API and browser-assisted grabs

When you grab a result from a supported catalog source, Chaptarr first uses the source's fast-download API when an API key is configured. If that cannot provide a file URL, the optional slow-download browser fallback can resolve a link in a headless browser during the background transfer. Browser fallback can take longer than an API grab. Direct Download is built in; it does not require qBittorrent, Transmission, or another external download client. The official Docker image includes the Playwright Chromium runtime on AMD64 and ARM64. ARMv7 images omit Chromium, so browser fallback is unavailable on ARMv7; API-key-resolved downloads still work there. A custom image must include a matching browser runtime for browser fallback to work.

The built-in client reports transfer progress and keeps its state and staged files across restarts. Once a supported ebook file is complete, Chaptarr can send it through the normal import flow. See the fork feature guide for the behavior and safety limits.

Ordering, probing, and fallback

During an ebook search, Chaptarr checks the configured URLs from top to bottom. It prefers the book ISBN when one is available, then falls back to the monitored edition title. A URL is selected only after it returns a supported response with usable ebook results. Chaptarr moves to the next URL when the current one is unsafe, unavailable, times out, returns an unsupported response, or produces no usable result. It stops after the first successful URL and does not probe later entries for that search.

Each request has a bounded timeout and response-size limit. Redirects are followed only after every destination passes the same URL safety checks, and redirect chains are bounded. Search results are limited to recognized ebook file types and carry the normalized title, format, size, ISBN when available, and a direct download URL. A search fails with an actionable error when every configured URL fails or returns no usable result.

Ebook-only limitation

Direct Download accepts ebook searches only. Audiobook searches and audiobook releases are rejected before a Direct download is started. Supported ebook formats are limited to the formats recognized by the importer. A source that returns a page, an empty response, an unsupported format, or a non-ebook file is not a valid Direct release.

Staging, restart, and cleanup

The Direct Download client requires a configured Staging Folder. Create the folder first and make sure the Chaptarr process user can read, write, create subfolders, rename files, and delete files there. Keep the staging folder on persistent storage, not a temporary container filesystem. Do not point it at a library root or a folder shared with another downloader.

Each download gets its own state record and working directory. Data is written to a .part file and promoted to the final staged file only after a non-empty response completes. The client reports queued, downloading, completed, and failed states. Transient connection, timeout, and server failures are retried up to three attempts. An interrupted partial file is discarded before a retry, so it is not treated as a completed ebook.

On restart, Chaptarr reloads Direct state from the staging folder. Queued and in-progress items are reconciled and started again, an existing completed file is reused, and a missing completed file becomes failed. Keep the state files and staged files together until the item has been imported or deliberately removed.

Cleanup is explicit. Removing an item with delete-data enabled removes its state, partial file, completed staged file, and empty per-download directory. Removing it without delete-data removes the state but preserves downloaded data for manual inspection or recovery. After an import, use the normal completed-download cleanup action and choose whether staged data should be deleted. Do not delete staged files manually while an item is queued or being imported.

Security and operational requirements

Only absolute HTTP and HTTPS URLs are accepted. URLs with embedded credentials are rejected. Chaptarr blocks localhost, loopback, private, link-local, carrier-grade NAT, and cloud metadata targets, including targets reached through redirects. TLS certificate validation remains enabled. Keep source URLs and keys private, restrict access to the Chaptarr web interface, and never paste a key into an issue, log excerpt, backup shared with others, or shell history.

The feature is not a general-purpose web downloader. It depends on a source returning a supported, bounded response and a usable direct file URL. Access controls, rate limits, expiring links, changed page formats, unavailable mirrors, and licensing restrictions can cause a previously working URL to fail. A provider Test cannot detect those runtime conditions. Monitor the queue and failed items, keep backups of the configuration and library, and remove stale staging data after confirming that no queued or import-pending item references it.

Unraid Community Applications

ChaptarrNG's Unraid Community Apps template is templates/chaptarrng.xml, with repository metadata in ca_profile.xml. It installs the maintained fork image, maps the web interface on port 8789, and provides separate paths for appdata, audiobooks, ebooks, and downloads. The template tracks the validated main image and uses PUID=99 and PGID=100 by default; change those values to match the ownership of your media shares.

To make ChaptarrNG searchable in Community Applications, submit the package repository URL https://github.com/snapetech-org/chaptarrng through Unraid's Community Apps submission flow and complete its Validate and Scan steps. The template's TemplateURL points to its raw XML in this repository. The latest GHCR tag remains available for stable Docker installs; the Unraid template follows the validated main image.

Building from Source

Building from source requires the .NET 10 SDK, Node.js, and Yarn. When running ChaptarrNG natively, install FFmpeg for your operating system and make sure both ffmpeg and ffprobe are available on the PATH used to start the application. Normal source builds do not bundle them automatically; the ChaptarrNG Docker image already includes them.

Linux / macOS:

# Clone the repository
git clone https://github.com/snapetech-org/chaptarrng.git
cd chaptarrng

# Build the backend
dotnet publish src/NzbDrone.Console/Chaptarr.Console.csproj -c Release -f net10.0 -o _output/publish

# Build the frontend
yarn install
yarn build
cp -r _output/UI _output/publish/UI

# Run ChaptarrNG
dotnet _output/publish/Chaptarr.dll

Windows (Command Prompt):

:: Clone the repository
git clone https://github.com/snapetech-org/chaptarrng.git
cd chaptarrng

:: Build the backend
dotnet publish src/NzbDrone.Console/Chaptarr.Console.csproj -c Release -f net10.0 -o _output/publish

:: Build the frontend
yarn install
yarn build
xcopy _output\UI _output\publish\UI /E /I

:: Run ChaptarrNG
dotnet _output/publish/Chaptarr.Console.dll

Note: the inherited assembly is named Chaptarr.dll on Linux/macOS and Chaptarr.Console.dll on Windows.

Documentation

Contributing

ChaptarrNG is a community project, and we welcome contributions! Please see CONTRIBUTING.md for guidelines.

Bug Reports & Features

Found a bug or have a feature request? Please open an issue on GitHub with:

  • Clear description of the issue/feature
  • Steps to reproduce (for bugs)
  • Logs if applicable
  • Your environment details

Security

ChaptarrNG inherits the Readarr-derived operational model and security work from Chaptarr. Its current protections include:

  • Constant-time API-key comparison
  • Login brute-force throttling
  • Inbound security headers including HSTS, CSP, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy
  • Image proxy target validation before fetching remote images
  • API responses redact provider secrets
  • No analytics or crash reporting is enabled by default; optional diagnostics sends only operator-configured aggregate event counts
  • Optional passphrase-encrypted Quickstart Settings Backups
  • Optional authenticated encryption for full backup archives
  • Update binaries are verified by SHA256 before install

CI runs CodeQL and Trivy dependency/secret scans. Published container images include a BuildKit SBOM and provenance metadata, plus a GitHub build-provenance attestation. The Compose example also enables no-new-privileges and binds the published web port to loopback by default.

The frontend build uses a local braces parser depth limit while its upstream package has no published fix for GHSA-vfj7-8cjw-p6xm. See the dependency security notes for the patch details, audit commands, and removal criteria.

Use the X-Api-Key header for API clients. ChaptarrNG still accepts the legacy apikey query parameter for compatibility, so reverse proxies should redact that parameter from access logs.

Traditional full backups contain the database and config file, including credentials. Without the setting below they are stored as plain ZIP files; protect them as secrets.

To encrypt scheduled, update, and manual full backups, store a randomly generated passphrase with at least 16 non-whitespace characters in a secret file, mount it read-only in the ChaptarrNG container, and set CHAPTARR_BACKUP_ENCRYPTION_KEY_FILE to its in-container path (for example, /run/secrets/chaptarr_backup_passphrase). The Compose example includes a commented Docker secret setup. Backups are then written as authenticated, chunk-encrypted .zip.enc files; existing .zip backups remain restorable. Mount the same secret file on a replacement instance before restoring an encrypted backup. Keep the secret outside Config.xml and the backup archive; losing it makes those encrypted backups unrecoverable. Enabling encryption does not convert existing .zip backups, so protect or remove those separately. With the file path unset, new backups retain the legacy plain ZIP format. Protect the secret file through your container secret manager, and retain old secret files if you need to restore archives made with them. On POSIX systems, backup staging, temporary archives, and restore extraction directories are restricted to the application owner while the files are in use.

The Compose example publishes its web port on 127.0.0.1 by default. Set CHAPTARRNG_BIND_ADDRESS=0.0.0.0 in the host environment to publish it on all host interfaces, or use a shared Docker network for container-to-container access without publishing the port.

Privacy

ChaptarrNG uses api2.chaptarr.com for metadata and matching. Metadata requests may include provider IDs, search text, media type, selected audio/eBook tags, and the file name being matched. Full file paths, user identity, and indexer or download-client credentials are not sent. Update checks send version, OS, architecture, and runtime information.

Please see SECURITY.md for reporting security vulnerabilities.

Acknowledgments

ChaptarrNG is a fork of Chaptarr, which is itself an independent fork of Readarr, from the Servarr project family. This project builds on work by Chaptarr, Readarr, and the Servarr contributors to Readarr, Sonarr, Radarr, Lidarr, and Prowlarr. Thank you.

Audiobook conversion is powered by m4b-tool (by sandreas), which builds on FFmpeg and mp4v2. These are bundled in the ChaptarrNG Docker image under their respective licenses.

See COPYRIGHT.md for full attribution and copyright details.

Disclaimer

ChaptarrNG is independently maintained. It is not affiliated with, endorsed by, or supported by the Servarr team or the Readarr, Sonarr, Radarr, Lidarr, or Prowlarr projects — please don't send ChaptarrNG support requests their way.

ChaptarrNG is provided under the GNU GPL v3 with no warranty (see the License section below).

AI Development Disclosure

ChaptarrNG is developed and maintained with the assistance of AI tools.

License

  • GNU GPL v3
  • Copyright © 2026 Snapetech and SeerrNG contributors for fork-specific changes
  • Portions copyright © 2010–2026 the Servarr team and contributors

See the LICENSE file for the full license text and COPYRIGHT.md for attribution details.

Requirements

Docker and persistent appdata storage. The default PUID and PGID are 99 and 100. Set the mapped appdata and media paths to locations accessible to that user and group.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/snapetech-org/chaptarrng:main
Last Updated2026-10-18
First Seen2026-10-18

Runtime arguments

Web UI
http://[IP]:[PORT:8789]/
Network
bridge
Shell
bash
Privileged
false
Extra Params
--init --restart=unless-stopped

Template configuration

Web UI PortPorttcp

HTTP port for the ChaptarrNG web interface.

Target
8789
Default
8789
Value
8789
AppdataPathrw

Persistent ChaptarrNG database, settings, and logs.

Target
/config
Default
/mnt/user/appdata/chaptarrng
Value
/mnt/user/appdata/chaptarrng
AudiobooksPathrw

Audiobook library path. Configure this path as an audiobook root folder in ChaptarrNG.

Target
/audiobooks
Default
/mnt/user/media/audiobooks
Value
/mnt/user/media/audiobooks
eBooksPathrw

eBook library path. Configure this path as an ebook root folder in ChaptarrNG.

Target
/ebooks
Default
/mnt/user/media/ebooks
Value
/mnt/user/media/ebooks
DownloadsPathrw

Download-client path shared with ChaptarrNG.

Target
/downloads
Default
/mnt/user/downloads
Value
/mnt/user/downloads
PUIDVariable

UID used by the container. Match this to the owner of the mapped folders.

Default
99
Value
99
PGIDVariable

GID used by the container. Match this to the group of the mapped folders.

Default
100
Value
100
UMASKVariable

Optional file-creation mask. Use 002 when a shared group needs write access.

Default
022
Value
022
TimezoneVariable

Container timezone, using a TZ database name.

Target
TZ
Default
America/Regina
Value
America/Regina