Added support for adding tag(s) to torrents sent to qBittorrent via shelfmark.  
46 KiB
Environment Variables
This document lists all configuration options that can be set via environment variables.
Auto-generated - Do not edit manually. Run
python scripts/generate_env_docs.pyto regenerate.
Table of Contents
- Bootstrap Configuration
- General
- Search Mode
- Downloads
- Network
- Advanced
- IRC
- Metadata Providers
- Direct Download
- Prowlarr
Bootstrap Configuration
These environment variables are used at startup before the settings system loads. They typically configure paths and server settings.
| Variable | Description | Type | Default |
|---|---|---|---|
CONFIG_DIR |
Directory for storing configuration files and plugin settings. | string (path) | /config |
LOG_ROOT |
Root directory for log files. | string (path) | /var/log/ |
TMP_DIR |
Staging directory for downloads before moving to destination. | string (path) | /tmp/shelfmark |
ENABLE_LOGGING |
Enable file logging under LOG_ROOT/shelfmark/ (including shelfmark.log and startup logs). | boolean | true |
FLASK_HOST |
Host address for the Flask web server. | string | 0.0.0.0 |
FLASK_PORT |
Port number for the Flask web server. | number | 8084 |
SESSION_COOKIE_SECURE |
Enable secure cookies (requires HTTPS). | boolean | false |
CWA_DB_PATH |
Path to the Calibre-Web database for authentication integration. | string (path) | /auth/app.db |
DOCKERMODE |
Indicates the application is running inside a Docker container. | boolean | false |
ONBOARDING |
Show the onboarding wizard on first run. Set to false to skip (useful for ephemeral storage). | boolean | true |
Detailed descriptions
CONFIG_DIR
Directory for storing configuration files and plugin settings.
- Type: string (path)
- Default:
/config
LOG_ROOT
Root directory for log files.
- Type: string (path)
- Default:
/var/log/
TMP_DIR
Staging directory for downloads before moving to destination.
- Type: string (path)
- Default:
/tmp/shelfmark
ENABLE_LOGGING
Enable file logging under LOG_ROOT/shelfmark/ (including shelfmark.log and startup logs).
- Type: boolean
- Default:
true
FLASK_HOST
Host address for the Flask web server.
- Type: string
- Default:
0.0.0.0
FLASK_PORT
Port number for the Flask web server.
- Type: number
- Default:
8084
SESSION_COOKIE_SECURE
Enable secure cookies (requires HTTPS).
- Type: boolean
- Default:
false
CWA_DB_PATH
Path to the Calibre-Web database for authentication integration.
- Type: string (path)
- Default:
/auth/app.db
DOCKERMODE
Indicates the application is running inside a Docker container.
- Type: boolean
- Default:
false
ONBOARDING
Show the onboarding wizard on first run. Set to false to skip (useful for ephemeral storage).
- Type: boolean
- Default:
true
General
| Variable | Description | Type | Default |
|---|---|---|---|
CALIBRE_WEB_URL |
Adds a navigation button to your book library (Calibre-Web Automated, Booklore, etc). | string | none |
AUDIOBOOK_LIBRARY_URL |
Adds a separate navigation button for your audiobook library (Audiobookshelf, Plex, etc). When both URLs are set, icons are shown instead of text. | string | none |
SUPPORTED_FORMATS |
Book formats to include in search results. ZIP/RAR archives are extracted automatically and book files are used if found. | string (comma-separated) | epub,mobi,azw3,fb2,djvu,cbz,cbr |
SUPPORTED_AUDIOBOOK_FORMATS |
Audiobook formats to include in search results. ZIP/RAR archives are extracted automatically and audiobook files are used if found. | string (comma-separated) | m4b,mp3 |
BOOK_LANGUAGE |
Default language filter for searches. | string (comma-separated) | en |
Detailed descriptions
CALIBRE_WEB_URL
Library URL
Adds a navigation button to your book library (Calibre-Web Automated, Booklore, etc).
- Type: string
- Default: none
AUDIOBOOK_LIBRARY_URL
Audiobook Library URL
Adds a separate navigation button for your audiobook library (Audiobookshelf, Plex, etc). When both URLs are set, icons are shown instead of text.
- Type: string
- Default: none
SUPPORTED_FORMATS
Supported Book Formats
Book formats to include in search results. ZIP/RAR archives are extracted automatically and book files are used if found.
- Type: string (comma-separated)
- Default:
epub,mobi,azw3,fb2,djvu,cbz,cbr
SUPPORTED_AUDIOBOOK_FORMATS
Supported Audiobook Formats
Audiobook formats to include in search results. ZIP/RAR archives are extracted automatically and audiobook files are used if found.
- Type: string (comma-separated)
- Default:
m4b,mp3
BOOK_LANGUAGE
Default Book Languages
Default language filter for searches.
- Type: string (comma-separated)
- Default:
en
Search Mode
| Variable | Description | Type | Default |
|---|---|---|---|
SEARCH_MODE |
How you want to search for and download books. | string (choice) | direct |
AA_DEFAULT_SORT |
Default sort order for search results. | string (choice) | relevance |
METADATA_PROVIDER |
Choose which metadata provider to use for book searches. | string (choice) | openlibrary |
METADATA_PROVIDER_AUDIOBOOK |
Metadata provider for audiobook searches. Uses the book provider if not set. | string (choice) | empty string |
DEFAULT_RELEASE_SOURCE |
The release source tab to open by default in the release modal. | string (choice) | direct_download |
Detailed descriptions
SEARCH_MODE
Search Mode
How you want to search for and download books.
- Type: string (choice)
- Default:
direct - Options:
direct(Direct),universal(Universal)
AA_DEFAULT_SORT
Default Sort Order
Default sort order for search results.
- Type: string (choice)
- Default:
relevance - Options:
relevance(Most relevant),newest(Newest (publication year)),oldest(Oldest (publication year)),largest(Largest (filesize)),smallest(Smallest (filesize)),newest_added(Newest (open sourced)),oldest_added(Oldest (open sourced))
METADATA_PROVIDER
Book Metadata Provider
Choose which metadata provider to use for book searches.
- Type: string (choice)
- Default:
openlibrary - Options:
""(No providers enabled)
METADATA_PROVIDER_AUDIOBOOK
Audiobook Metadata Provider
Metadata provider for audiobook searches. Uses the book provider if not set.
- Type: string (choice)
- Default: empty string
- Options:
""(Use book provider),""(No providers enabled)
DEFAULT_RELEASE_SOURCE
Default Release Source
The release source tab to open by default in the release modal.
- Type: string (choice)
- Default:
direct_download - Options:
direct_download(Direct Download),prowlarr(Prowlarr)
Downloads
| Variable | Description | Type | Default |
|---|---|---|---|
BOOKS_OUTPUT_MODE |
Choose where completed book files are sent. | string (choice) | folder |
INGEST_DIR |
Directory where downloaded files are saved. | string | /books |
FILE_ORGANIZATION |
Choose how downloaded book files are named and organized. | string (choice) | rename |
TEMPLATE_RENAME |
Variables: {Author}, {Title}, {Year}. Universal adds: {Series}, {SeriesPosition}, {Subtitle}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty. Rename templates are filename-only (no '/' or ''); use Organize for folders. | string | {Author} - {Title} ({Year}) |
TEMPLATE_ORGANIZE |
Use / to create folders. Variables: {Author}, {Title}, {Year}. Universal adds: {Series}, {SeriesPosition}, {Subtitle}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty. | string | {Author}/{Title} ({Year}) |
HARDLINK_TORRENTS |
Create hardlinks instead of copying. Preserves seeding but archives won't be extracted. Don't use if destination is a library ingest folder. | boolean | false |
BOOKLORE_HOST |
Base URL of your Booklore instance | string | none |
BOOKLORE_USERNAME |
Booklore account username | string | none |
BOOKLORE_PASSWORD |
Booklore account password | string (secret) | none |
BOOKLORE_LIBRARY_ID |
Booklore library to upload into. | string (choice) | none |
BOOKLORE_PATH_ID |
Booklore library path for uploads. | string (choice) | none |
DESTINATION_AUDIOBOOK |
Leave empty to use Books destination. | string | none |
FILE_ORGANIZATION_AUDIOBOOK |
Choose how downloaded audiobook files are named and organized. | string (choice) | rename |
TEMPLATE_AUDIOBOOK_RENAME |
Variables: {Author}, {Title}, {Year}, {Series}, {SeriesPosition}, {Subtitle}, {PartNumber}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty. Rename templates are filename-only (no '/' or ''); use Organize for folders. | string | {Author} - {Title} |
TEMPLATE_AUDIOBOOK_ORGANIZE |
Use / to create folders. Variables: {Author}, {Title}, {Year}, {Series}, {SeriesPosition}, {Subtitle}, {PartNumber}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty. | string | {Author}/{Title} |
HARDLINK_TORRENTS_AUDIOBOOK |
Create hardlinks instead of copying. Preserves seeding but archives won't be extracted. Don't use if destination is a library ingest folder. | boolean | true |
AUTO_OPEN_DOWNLOADS_SIDEBAR |
Automatically open the downloads sidebar when a new download is queued. | boolean | false |
DOWNLOAD_TO_BROWSER |
Automatically download completed files to your browser. | boolean | false |
MAX_CONCURRENT_DOWNLOADS |
Maximum number of simultaneous downloads. | number | 3 |
STATUS_TIMEOUT |
How long to keep completed/failed downloads in the queue display. | number | 3600 |
Detailed descriptions
BOOKS_OUTPUT_MODE
Output Mode
Choose where completed book files are sent.
- Type: string (choice)
- Default:
folder - Options:
folder(Folder),booklore(Booklore (API))
INGEST_DIR
Destination
Directory where downloaded files are saved.
- Type: string
- Default:
/books - Required: Yes
FILE_ORGANIZATION
File Organization
Choose how downloaded book files are named and organized.
- Type: string (choice)
- Default:
rename - Options:
none(None),rename(Rename Only),organize(Rename and Organize)
TEMPLATE_RENAME
Naming Template
Variables: {Author}, {Title}, {Year}. Universal adds: {Series}, {SeriesPosition}, {Subtitle}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty. Rename templates are filename-only (no '/' or ''); use Organize for folders.
- Type: string
- Default:
{Author} - {Title} ({Year})
TEMPLATE_ORGANIZE
Path Template
Use / to create folders. Variables: {Author}, {Title}, {Year}. Universal adds: {Series}, {SeriesPosition}, {Subtitle}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty.
- Type: string
- Default:
{Author}/{Title} ({Year})
HARDLINK_TORRENTS
Hardlink Book Torrents
Create hardlinks instead of copying. Preserves seeding but archives won't be extracted. Don't use if destination is a library ingest folder.
- Type: boolean
- Default:
false
BOOKLORE_HOST
Booklore URL
Base URL of your Booklore instance
- Type: string
- Default: none
- Required: Yes
BOOKLORE_USERNAME
Username
Booklore account username
- Type: string
- Default: none
- Required: Yes
BOOKLORE_PASSWORD
Password
Booklore account password
- Type: string (secret)
- Default: none
- Required: Yes
BOOKLORE_LIBRARY_ID
Library
Booklore library to upload into.
- Type: string (choice)
- Default: none
- Required: Yes
BOOKLORE_PATH_ID
Path
Booklore library path for uploads.
- Type: string (choice)
- Default: none
- Required: Yes
DESTINATION_AUDIOBOOK
Destination
Leave empty to use Books destination.
- Type: string
- Default: none
FILE_ORGANIZATION_AUDIOBOOK
File Organization
Choose how downloaded audiobook files are named and organized.
- Type: string (choice)
- Default:
rename - Options:
none(None),rename(Rename Only),organize(Rename and Organize)
TEMPLATE_AUDIOBOOK_RENAME
Naming Template
Variables: {Author}, {Title}, {Year}, {Series}, {SeriesPosition}, {Subtitle}, {PartNumber}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty. Rename templates are filename-only (no '/' or ''); use Organize for folders.
- Type: string
- Default:
{Author} - {Title}
TEMPLATE_AUDIOBOOK_ORGANIZE
Path Template
Use / to create folders. Variables: {Author}, {Title}, {Year}, {Series}, {SeriesPosition}, {Subtitle}, {PartNumber}. Use arbitrary prefix/suffix: {Vol. SeriesPosition - } outputs 'Vol. 2 - ' when set, nothing when empty.
- Type: string
- Default:
{Author}/{Title}
HARDLINK_TORRENTS_AUDIOBOOK
Hardlink Audiobook Torrents
Create hardlinks instead of copying. Preserves seeding but archives won't be extracted. Don't use if destination is a library ingest folder.
- Type: boolean
- Default:
true
AUTO_OPEN_DOWNLOADS_SIDEBAR
Auto-Open Downloads Sidebar
Automatically open the downloads sidebar when a new download is queued.
- Type: boolean
- Default:
false
DOWNLOAD_TO_BROWSER
Download to Browser
Automatically download completed files to your browser.
- Type: boolean
- Default:
false
MAX_CONCURRENT_DOWNLOADS
Max Concurrent Downloads
Maximum number of simultaneous downloads.
- Type: number
- Default:
3 - Requires restart: Yes
- Constraints: min: 1, max: 10
STATUS_TIMEOUT
Status Timeout (seconds)
How long to keep completed/failed downloads in the queue display.
- Type: number
- Default:
3600 - Constraints: min: 60, max: 86400
Network
| Variable | Description | Type | Default |
|---|---|---|---|
CUSTOM_DNS |
DNS provider for domain resolution. 'Auto' rotates through providers on failure. | string (choice) | auto |
CUSTOM_DNS_MANUAL |
Comma-separated list of DNS server IP addresses (e.g., 8.8.8.8, 1.1.1.1). | string | none |
USE_DOH |
Use encrypted DNS queries for improved reliability and privacy. | boolean | true |
USING_TOR |
Route all traffic through Tor for enhanced privacy. | boolean | false |
PROXY_MODE |
Choose proxy type. SOCKS5 handles all traffic through a single proxy. | string (choice) | none |
HTTP_PROXY |
HTTP proxy URL (e.g., http://proxy:8080) | string | none |
HTTPS_PROXY |
HTTPS proxy URL (leave empty to use HTTP proxy for HTTPS) | string | none |
SOCKS5_PROXY |
SOCKS5 proxy URL. Supports auth: socks5://user:pass@host:port | string | none |
NO_PROXY |
Comma-separated hosts to bypass proxy (e.g., localhost,127.0.0.1,10.,.local) | string | none |
Detailed descriptions
CUSTOM_DNS
DNS Provider
DNS provider for domain resolution. 'Auto' rotates through providers on failure.
- Type: string (choice)
- Default:
auto - Options:
auto(Auto (Recommended)),system(System),google(Google),cloudflare(Cloudflare),quad9(Quad9),opendns(OpenDNS),manual(Manual)
CUSTOM_DNS_MANUAL
Manual DNS Servers
Comma-separated list of DNS server IP addresses (e.g., 8.8.8.8, 1.1.1.1).
- Type: string
- Default: none
USE_DOH
Use DNS over HTTPS
Use encrypted DNS queries for improved reliability and privacy.
- Type: boolean
- Default:
true
USING_TOR
Tor Routing
Route all traffic through Tor for enhanced privacy.
- Type: boolean
- Default:
false
PROXY_MODE
Proxy Mode
Choose proxy type. SOCKS5 handles all traffic through a single proxy.
- Type: string (choice)
- Default:
none - Options:
none(None (Direct Connection)),http(HTTP/HTTPS Proxy),socks5(SOCKS5 Proxy)
HTTP_PROXY
HTTP Proxy
HTTP proxy URL (e.g., http://proxy:8080)
- Type: string
- Default: none
HTTPS_PROXY
HTTPS Proxy
HTTPS proxy URL (leave empty to use HTTP proxy for HTTPS)
- Type: string
- Default: none
SOCKS5_PROXY
SOCKS5 Proxy
SOCKS5 proxy URL. Supports auth: socks5://user:pass@host:port
- Type: string
- Default: none
NO_PROXY
No Proxy
Comma-separated hosts to bypass proxy (e.g., localhost,127.0.0.1,10.,.local)
- Type: string
- Default: none
Advanced
| Variable | Description | Type | Default |
|---|---|---|---|
URL_BASE |
Optional URL path prefix. Use a path like /shelfmark (no hostname). Leave blank for root. | string | none |
DEBUG |
Enable verbose logging to console and file. Not recommended for normal use. | boolean | false |
MAIN_LOOP_SLEEP_TIME |
How often the download queue is checked for new items. | number | 5 |
DOWNLOAD_PROGRESS_UPDATE_INTERVAL |
How often download progress is broadcast to the UI. | number | 1 |
CUSTOM_SCRIPT |
Path to a script to run after each successful download. Must be executable. | string | none |
CUSTOM_SCRIPT_PATH_MODE |
Pass the path to the custom script as an absolute path or relative to the destination folder. | string (choice) | absolute |
CUSTOM_SCRIPT_JSON_PAYLOAD |
Send a JSON payload to the custom script via stdin. | boolean | false |
COVERS_CACHE_ENABLED |
Cache book covers on the server for faster loading. | boolean | true |
COVERS_CACHE_TTL |
How long to keep cached covers. Set to 0 to keep forever (recommended for static artwork). | number | 0 |
COVERS_CACHE_MAX_SIZE_MB |
Maximum disk space for cached covers. Oldest images are removed when limit is reached. | number | 500 |
METADATA_CACHE_ENABLED |
When disabled, all metadata searches hit the provider API directly. | boolean | true |
METADATA_CACHE_SEARCH_TTL |
How long to cache search results. Default: 300 (5 minutes). Max: 604800 (7 days). | number | 300 |
METADATA_CACHE_BOOK_TTL |
How long to cache individual book details. Default: 600 (10 minutes). Max: 604800 (7 days). | number | 600 |
Detailed descriptions
URL_BASE
Base Path
Optional URL path prefix. Use a path like /shelfmark (no hostname). Leave blank for root.
- Type: string
- Default: none
- Requires restart: Yes
DEBUG
Debug Mode
Enable verbose logging to console and file. Not recommended for normal use.
- Type: boolean
- Default:
false - Requires restart: Yes
MAIN_LOOP_SLEEP_TIME
Queue Check Interval (seconds)
How often the download queue is checked for new items.
- Type: number
- Default:
5 - Requires restart: Yes
- Constraints: min: 1, max: 60
DOWNLOAD_PROGRESS_UPDATE_INTERVAL
Progress Update Interval (seconds)
How often download progress is broadcast to the UI.
- Type: number
- Default:
1 - Requires restart: Yes
- Constraints: min: 1, max: 10
CUSTOM_SCRIPT
Custom Script Path
Path to a script to run after each successful download. Must be executable.
See docs/custom-scripts.md for the user guide, including how the target path argument ($1) and optional JSON payload work.
- Type: string
- Default: none
CUSTOM_SCRIPT_PATH_MODE
Custom Script Path Mode
Pass the path to the custom script as an absolute path or relative to the destination folder.
- Type: string (choice)
- Default:
absolute - Options:
absolute(Absolute),relative(Relative)
CUSTOM_SCRIPT_JSON_PAYLOAD
Custom Script JSON Payload
Send a JSON payload to the custom script via stdin (in addition to the target path argument).
See docs/custom-scripts.md for an example payload and usage patterns.
- Type: boolean
- Default:
false
COVERS_CACHE_ENABLED
Enable Cover Cache
Cache book covers on the server for faster loading.
- Type: boolean
- Default:
true
COVERS_CACHE_TTL
Cache TTL (days)
How long to keep cached covers. Set to 0 to keep forever (recommended for static artwork).
- Type: number
- Default:
0 - Constraints: min: 0, max: 365
COVERS_CACHE_MAX_SIZE_MB
Max Cache Size (MB)
Maximum disk space for cached covers. Oldest images are removed when limit is reached.
- Type: number
- Default:
500 - Constraints: min: 50, max: 5000
METADATA_CACHE_ENABLED
Enable Metadata Caching
When disabled, all metadata searches hit the provider API directly.
- Type: boolean
- Default:
true
METADATA_CACHE_SEARCH_TTL
Search Results Cache (seconds)
How long to cache search results. Default: 300 (5 minutes). Max: 604800 (7 days).
- Type: number
- Default:
300 - Constraints: min: 60, max: 604800
METADATA_CACHE_BOOK_TTL
Book Details Cache (seconds)
How long to cache individual book details. Default: 600 (10 minutes). Max: 604800 (7 days).
- Type: number
- Default:
600 - Constraints: min: 60, max: 604800
IRC
| Variable | Description | Type | Default |
|---|---|---|---|
IRC_SERVER |
IRC server hostname | string | none |
IRC_PORT |
IRC server port (usually 6697 for TLS, 6667 for plain) | number | 6697 |
IRC_USE_TLS |
Enable TLS/SSL encryption for the IRC connection. Disable for servers that don't support TLS. | boolean | true |
IRC_CHANNEL |
Channel name without the # prefix | string | none |
IRC_NICK |
Your IRC nickname (required). Must be unique on the IRC network. | string | none |
IRC_SEARCH_BOT |
The search bot to query for results | string | none |
IRC_CACHE_TTL |
How long to keep cached search results before they expire. | string (choice) | 2592000 |
Detailed descriptions
IRC_SERVER
Server
IRC server hostname
- Type: string
- Default: none
- Required: Yes
IRC_PORT
Port
IRC server port (usually 6697 for TLS, 6667 for plain)
- Type: number
- Default:
6697
IRC_USE_TLS
Use TLS
Enable TLS/SSL encryption for the IRC connection. Disable for servers that don't support TLS.
- Type: boolean
- Default:
true
IRC_CHANNEL
Channel
Channel name without the # prefix
- Type: string
- Default: none
- Required: Yes
IRC_NICK
Nickname
Your IRC nickname (required). Must be unique on the IRC network.
- Type: string
- Default: none
- Required: Yes
IRC_SEARCH_BOT
Search bot
The search bot to query for results
- Type: string
- Default: none
IRC_CACHE_TTL
Cache Duration
How long to keep cached search results before they expire.
- Type: string (choice)
- Default:
2592000 - Options:
2592000(30 days),0(Forever (until manually cleared))
Metadata Providers
Metadata Providers: Hardcover
| Variable | Description | Type | Default |
|---|---|---|---|
HARDCOVER_ENABLED |
Enable Hardcover as a metadata provider for book searches | boolean | false |
HARDCOVER_API_KEY |
Get your API key from hardcover.app/account/api | string (secret) | none |
HARDCOVER_DEFAULT_SORT |
Default sort order for Hardcover search results. | string (choice) | relevance |
HARDCOVER_EXCLUDE_COMPILATIONS |
Filter out compilations, anthologies, and omnibus editions from search results | boolean | false |
HARDCOVER_EXCLUDE_UNRELEASED |
Filter out books with a release year in the future | boolean | false |
Detailed descriptions
HARDCOVER_ENABLED
Enable Hardcover
Enable Hardcover as a metadata provider for book searches
- Type: boolean
- Default:
false
HARDCOVER_API_KEY
API Key
Get your API key from hardcover.app/account/api
- Type: string (secret)
- Default: none
- Required: Yes
HARDCOVER_DEFAULT_SORT
Default Sort Order
Default sort order for Hardcover search results.
- Type: string (choice)
- Default:
relevance - Options:
relevance(Most relevant),popularity(Most popular),rating(Highest rated),newest(Newest),oldest(Oldest)
HARDCOVER_EXCLUDE_COMPILATIONS
Exclude Compilations
Filter out compilations, anthologies, and omnibus editions from search results
- Type: boolean
- Default:
false
HARDCOVER_EXCLUDE_UNRELEASED
Exclude Unreleased Books
Filter out books with a release year in the future
- Type: boolean
- Default:
false
Metadata Providers: Open Library
| Variable | Description | Type | Default |
|---|---|---|---|
OPENLIBRARY_ENABLED |
Enable Open Library as a metadata provider for book searches | boolean | false |
OPENLIBRARY_DEFAULT_SORT |
Default sort order for Open Library search results. | string (choice) | relevance |
Detailed descriptions
OPENLIBRARY_ENABLED
Enable Open Library
Enable Open Library as a metadata provider for book searches
- Type: boolean
- Default:
false
OPENLIBRARY_DEFAULT_SORT
Default Sort Order
Default sort order for Open Library search results.
- Type: string (choice)
- Default:
relevance - Options:
relevance(Most relevant),newest(Newest),oldest(Oldest)
Metadata Providers: Google Books
| Variable | Description | Type | Default |
|---|---|---|---|
GOOGLEBOOKS_ENABLED |
Enable Google Books as a metadata provider for book searches | boolean | false |
GOOGLEBOOKS_API_KEY |
Get your API key from Google Cloud Console (APIs & Services > Credentials) | string (secret) | none |
GOOGLEBOOKS_DEFAULT_SORT |
Default sort order for Google Books search results. | string (choice) | relevance |
Detailed descriptions
GOOGLEBOOKS_ENABLED
Enable Google Books
Enable Google Books as a metadata provider for book searches
- Type: boolean
- Default:
false
GOOGLEBOOKS_API_KEY
API Key
Get your API key from Google Cloud Console (APIs & Services > Credentials)
- Type: string (secret)
- Default: none
- Required: Yes
GOOGLEBOOKS_DEFAULT_SORT
Default Sort Order
Default sort order for Google Books search results.
- Type: string (choice)
- Default:
relevance - Options:
relevance(Most relevant),newest(Newest)
Direct Download
Direct Download: Download Sources
| Variable | Description | Type | Default |
|---|---|---|---|
AA_DONATOR_KEY |
Enables fast download access on AA. Get this from your donator account page. | string (secret) | none |
FAST_SOURCES_DISPLAY |
Always tried first, no waiting or bypass required. | JSON array | see UI for defaults |
SOURCE_PRIORITY |
Fallback sources, may have waiting. Requires bypasser. Drag to reorder. | JSON array | see UI for defaults |
MAX_RETRY |
Maximum retry attempts for failed downloads. | number | 10 |
DEFAULT_SLEEP |
Wait time between download retry attempts. | number | 5 |
AA_CONTENT_TYPE_ROUTING |
Override destination based on content type metadata. | boolean | false |
AA_CONTENT_TYPE_DIR_FICTION |
Fiction Books | string | none |
AA_CONTENT_TYPE_DIR_NON_FICTION |
Non-Fiction Books | string | none |
AA_CONTENT_TYPE_DIR_UNKNOWN |
Unknown Books | string | none |
AA_CONTENT_TYPE_DIR_MAGAZINE |
Magazines | string | none |
AA_CONTENT_TYPE_DIR_COMIC |
Comic Books | string | none |
AA_CONTENT_TYPE_DIR_STANDARDS |
Standards Documents | string | none |
AA_CONTENT_TYPE_DIR_MUSICAL_SCORE |
Musical Scores | string | none |
AA_CONTENT_TYPE_DIR_OTHER |
Other | string | none |
Detailed descriptions
AA_DONATOR_KEY
Account Donator Key
Enables fast download access on AA. Get this from your donator account page.
- Type: string (secret)
- Default: none
FAST_SOURCES_DISPLAY
Fast downloads
Always tried first, no waiting or bypass required.
- Type: JSON array
- Default: see UI for defaults
SOURCE_PRIORITY
Slow downloads
Fallback sources, may have waiting. Requires bypasser. Drag to reorder.
- Type: JSON array
- Default: see UI for defaults
MAX_RETRY
Max Retries
Maximum retry attempts for failed downloads.
- Type: number
- Default:
10 - Constraints: min: 1, max: 50
DEFAULT_SLEEP
Retry Delay (seconds)
Wait time between download retry attempts.
- Type: number
- Default:
5 - Constraints: min: 1, max: 60
AA_CONTENT_TYPE_ROUTING
Enable Content-Type Routing
Override destination based on content type metadata.
- Type: boolean
- Default:
false
AA_CONTENT_TYPE_DIR_FICTION
Fiction Books
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_NON_FICTION
Non-Fiction Books
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_UNKNOWN
Unknown Books
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_MAGAZINE
Magazines
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_COMIC
Comic Books
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_STANDARDS
Standards Documents
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_MUSICAL_SCORE
Musical Scores
- Type: string
- Default: none
AA_CONTENT_TYPE_DIR_OTHER
Other
- Type: string
- Default: none
Direct Download: Cloudflare Bypass
| Variable | Description | Type | Default |
|---|---|---|---|
USE_CF_BYPASS |
Attempt to bypass Cloudflare protection on download sites. | boolean | true |
USING_EXTERNAL_BYPASSER |
Use FlareSolverr or similar external service instead of built-in bypasser. Caution: May have limitations with custom DNS, Tor and proxies. You may experience slower downloads and and poorer reliability compared to the internal bypasser. | boolean | false |
EXT_BYPASSER_URL |
URL of the external bypasser service (e.g., FlareSolverr). | string | http://flaresolverr:8191 |
EXT_BYPASSER_PATH |
API path for the external bypasser. | string | /v1 |
EXT_BYPASSER_TIMEOUT |
Timeout for external bypasser requests in milliseconds. | number | 60000 |
Detailed descriptions
USE_CF_BYPASS
Enable Cloudflare Bypass
Attempt to bypass Cloudflare protection on download sites.
- Type: boolean
- Default:
true - Requires restart: Yes
USING_EXTERNAL_BYPASSER
Use External Bypasser
Use FlareSolverr or similar external service instead of built-in bypasser. Caution: May have limitations with custom DNS, Tor and proxies. You may experience slower downloads and and poorer reliability compared to the internal bypasser.
- Type: boolean
- Default:
false - Requires restart: Yes
EXT_BYPASSER_URL
External Bypasser URL
URL of the external bypasser service (e.g., FlareSolverr).
- Type: string
- Default:
http://flaresolverr:8191 - Requires restart: Yes
EXT_BYPASSER_PATH
External Bypasser Path
API path for the external bypasser.
- Type: string
- Default:
/v1 - Requires restart: Yes
EXT_BYPASSER_TIMEOUT
External Bypasser Timeout (ms)
Timeout for external bypasser requests in milliseconds.
- Type: number
- Default:
60000 - Requires restart: Yes
- Constraints: min: 10000, max: 300000
Direct Download: Mirrors
| Variable | Description | Type | Default |
|---|---|---|---|
AA_BASE_URL |
Select 'Auto' to try mirrors from your list on startup and fall back on failures. Choosing a specific mirror locks Shelfmark to that mirror (no fallback). | string (choice) | auto |
AA_MIRROR_URLS |
Editable list of AA mirrors. Used to populate the Primary Mirror dropdown and the order used when Auto is selected. Type a URL and press Enter to add. Order matters for auto-rotation | string | https://annas-archive.gl,https://annas-archive.li |
AA_ADDITIONAL_URLS |
Deprecated. Use Mirrors instead. This is kept for backwards compatibility with existing installs and environment variables. | string | none |
LIBGEN_ADDITIONAL_URLS |
Comma-separated list of custom LibGen mirrors to add to the defaults. | string | none |
ZLIB_PRIMARY_URL |
Z-Library mirror to use for downloads. | string (choice) | https://z-lib.fm |
ZLIB_ADDITIONAL_URLS |
Comma-separated list of custom Z-Library mirror URLs. | string | none |
WELIB_PRIMARY_URL |
Welib mirror to use for downloads. | string (choice) | https://welib.org |
WELIB_ADDITIONAL_URLS |
Comma-separated list of custom Welib mirror URLs. | string | none |
Detailed descriptions
AA_BASE_URL
Primary Mirror
Select 'Auto' to try mirrors from your list on startup and fall back on failures. Choosing a specific mirror locks Shelfmark to that mirror (no fallback).
- Type: string (choice)
- Default:
auto - Options:
auto(Auto (Recommended)),https://annas-archive.gl(annas-archive.gl),https://annas-archive.li(annas-archive.li)
AA_MIRROR_URLS
Mirrors
Editable list of AA mirrors. Used to populate the Primary Mirror dropdown and the order used when Auto is selected. Type a URL and press Enter to add. Order matters for auto-rotation
- Type: string
- Default:
https://annas-archive.gl,https://annas-archive.li
AA_ADDITIONAL_URLS
Additional Mirrors (Legacy)
Deprecated. Use Mirrors instead. This is kept for backwards compatibility with existing installs and environment variables.
- Type: string
- Default: none
LIBGEN_ADDITIONAL_URLS
Additional Mirrors
Comma-separated list of custom LibGen mirrors to add to the defaults.
- Type: string
- Default: none
ZLIB_PRIMARY_URL
Primary Mirror
Z-Library mirror to use for downloads.
- Type: string (choice)
- Default:
https://z-lib.fm - Options:
https://z-lib.fm(z-lib.fm),https://z-lib.gs(z-lib.gs),https://z-lib.id(z-lib.id),https://z-library.sk(z-library.sk),https://zlibrary-global.se(zlibrary-global.se)
ZLIB_ADDITIONAL_URLS
Additional Mirrors
Comma-separated list of custom Z-Library mirror URLs.
- Type: string
- Default: none
WELIB_PRIMARY_URL
Primary Mirror
Welib mirror to use for downloads.
- Type: string (choice)
- Default:
https://welib.org - Options:
https://welib.org(welib.org)
WELIB_ADDITIONAL_URLS
Additional Mirrors
Comma-separated list of custom Welib mirror URLs.
- Type: string
- Default: none
Prowlarr
Prowlarr: Configuration
| Variable | Description | Type | Default |
|---|---|---|---|
PROWLARR_ENABLED |
Enable searching for books via Prowlarr indexers | boolean | false |
PROWLARR_URL |
Base URL of your Prowlarr instance | string | none |
PROWLARR_API_KEY |
Found in Prowlarr: Settings > General > API Key | string (secret) | none |
PROWLARR_INDEXERS |
Select which indexers to search. 📚 = has book categories. Leave empty to search all. | string (comma-separated) | empty list |
PROWLARR_AUTO_EXPAND |
Automatically retry search without category filtering if no results are found | boolean | false |
Detailed descriptions
PROWLARR_ENABLED
Enable Prowlarr source
Enable searching for books via Prowlarr indexers
- Type: boolean
- Default:
false
PROWLARR_URL
Prowlarr URL
Base URL of your Prowlarr instance
- Type: string
- Default: none
- Required: Yes
PROWLARR_API_KEY
API Key
Found in Prowlarr: Settings > General > API Key
- Type: string (secret)
- Default: none
- Required: Yes
PROWLARR_INDEXERS
Indexers to Search
Select which indexers to search. 📚 = has book categories. Leave empty to search all.
- Type: string (comma-separated)
- Default: empty list
PROWLARR_AUTO_EXPAND
Auto-expand search on no results
Automatically retry search without category filtering if no results are found
- Type: boolean
- Default:
false
Prowlarr: Download Clients
| Variable | Description | Type | Default |
|---|---|---|---|
PROWLARR_TORRENT_CLIENT |
Choose which torrent client to use | string (choice) | empty string |
QBITTORRENT_URL |
Web UI URL of your qBittorrent instance | string | none |
QBITTORRENT_USERNAME |
qBittorrent Web UI username | string | none |
QBITTORRENT_PASSWORD |
qBittorrent Web UI password | string (secret) | none |
QBITTORRENT_CATEGORY |
Category to assign to book downloads in qBittorrent | string | books |
QBITTORRENT_CATEGORY_AUDIOBOOK |
Category for audiobook downloads. Leave empty to use the book category. | string | empty string |
QBITTORRENT_TAG |
Comma-separated list of tags to assign to qBittorrent downloads. Leave empty for no tags. | string | empty string |
TRANSMISSION_URL |
URL of your Transmission instance | string | none |
TRANSMISSION_USERNAME |
Transmission RPC username (if authentication enabled) | string | none |
TRANSMISSION_PASSWORD |
Transmission RPC password | string (secret) | none |
TRANSMISSION_CATEGORY |
Label to assign to book downloads in Transmission | string | books |
TRANSMISSION_CATEGORY_AUDIOBOOK |
Label for audiobook downloads. Leave empty to use the book label. | string | empty string |
DELUGE_HOST |
Hostname/IP or full URL of your Deluge Web UI (deluge-web) | string | localhost |
DELUGE_PORT |
Deluge Web UI port (default: 8112) | string | 8112 |
DELUGE_PASSWORD |
Deluge Web UI password (default: deluge) | string (secret) | none |
DELUGE_CATEGORY |
Label to assign to book downloads in Deluge | string | books |
DELUGE_CATEGORY_AUDIOBOOK |
Label for audiobook downloads. Leave empty to use the book label. | string | empty string |
RTORRENT_URL |
XML-RPC URL of your rTorrent instance | string | none |
RTORRENT_USERNAME |
HTTP Basic auth username (if authentication enabled) | string | none |
RTORRENT_PASSWORD |
HTTP Basic auth password | string (secret) | none |
RTORRENT_LABEL |
Label to assign to book downloads in rTorrent | string | cwabd |
RTORRENT_DOWNLOAD_DIR |
Server-side directory where torrents are downloaded (optional, uses rTorrent default if not specified) | string | none |
PROWLARR_USENET_CLIENT |
Choose which usenet client to use | string (choice) | empty string |
NZBGET_URL |
URL of your NZBGet instance | string | none |
NZBGET_USERNAME |
NZBGet control username | string | nzbget |
NZBGET_PASSWORD |
NZBGet control password | string (secret) | none |
NZBGET_CATEGORY |
Category to assign to book downloads in NZBGet | string | Books |
NZBGET_CATEGORY_AUDIOBOOK |
Category for audiobook downloads. Leave empty to use the book category. | string | empty string |
SABNZBD_URL |
URL of your SABnzbd instance | string | none |
SABNZBD_API_KEY |
Found in SABnzbd: Config > General > API Key | string (secret) | none |
SABNZBD_CATEGORY |
Category to assign to book downloads in SABnzbd | string | books |
SABNZBD_CATEGORY_AUDIOBOOK |
Category for audiobook downloads. Leave empty to use the book category. | string | empty string |
PROWLARR_USENET_ACTION |
Move deletes the job from your usenet client after import; Copy keeps it in the client | string (choice) | move |
Detailed descriptions
PROWLARR_TORRENT_CLIENT
Torrent Client
Choose which torrent client to use
- Type: string (choice)
- Default: empty string
- Options:
""(None),qbittorrent(qBittorrent),transmission(Transmission),deluge(Deluge),rtorrent(rTorrent)
QBITTORRENT_URL
qBittorrent URL
Web UI URL of your qBittorrent instance
- Type: string
- Default: none
QBITTORRENT_USERNAME
Username
qBittorrent Web UI username
- Type: string
- Default: none
QBITTORRENT_PASSWORD
Password
qBittorrent Web UI password
- Type: string (secret)
- Default: none
QBITTORRENT_CATEGORY
Book Category
Category to assign to book downloads in qBittorrent
- Type: string
- Default:
books
QBITTORRENT_CATEGORY_AUDIOBOOK
Audiobook Category
Category for audiobook downloads. Leave empty to use the book category.
- Type: string
- Default: empty string
QBITTORRENT_TAG
Tags
Comma-separated list of tags to assign to qBittorrent downloads. Leave empty for no tags.
- Type: string
- Default: empty string
TRANSMISSION_URL
Transmission URL
URL of your Transmission instance
- Type: string
- Default: none
TRANSMISSION_USERNAME
Username
Transmission RPC username (if authentication enabled)
- Type: string
- Default: none
TRANSMISSION_PASSWORD
Password
Transmission RPC password
- Type: string (secret)
- Default: none
TRANSMISSION_CATEGORY
Book Label
Label to assign to book downloads in Transmission
- Type: string
- Default:
books
TRANSMISSION_CATEGORY_AUDIOBOOK
Audiobook Label
Label for audiobook downloads. Leave empty to use the book label.
- Type: string
- Default: empty string
DELUGE_HOST
Deluge Web UI Host/URL
Hostname/IP or full URL of your Deluge Web UI (deluge-web)
- Type: string
- Default:
localhost
DELUGE_PORT
Deluge Web UI Port
Deluge Web UI port (default: 8112)
- Type: string
- Default:
8112
DELUGE_PASSWORD
Password
Deluge Web UI password (default: deluge)
- Type: string (secret)
- Default: none
DELUGE_CATEGORY
Book Label
Label to assign to book downloads in Deluge
- Type: string
- Default:
books
DELUGE_CATEGORY_AUDIOBOOK
Audiobook Label
Label for audiobook downloads. Leave empty to use the book label.
- Type: string
- Default: empty string
RTORRENT_URL
rTorrent URL
XML-RPC URL of your rTorrent instance
- Type: string
- Default: none
RTORRENT_USERNAME
Username
HTTP Basic auth username (if authentication enabled)
- Type: string
- Default: none
RTORRENT_PASSWORD
Password
HTTP Basic auth password
- Type: string (secret)
- Default: none
RTORRENT_LABEL
Book Label
Label to assign to book downloads in rTorrent
- Type: string
- Default:
cwabd
RTORRENT_DOWNLOAD_DIR
Download Directory
Server-side directory where torrents are downloaded (optional, uses rTorrent default if not specified)
- Type: string
- Default: none
PROWLARR_USENET_CLIENT
Usenet Client
Choose which usenet client to use
- Type: string (choice)
- Default: empty string
- Options:
""(None),nzbget(NZBGet),sabnzbd(SABnzbd)
NZBGET_URL
NZBGet URL
URL of your NZBGet instance
- Type: string
- Default: none
NZBGET_USERNAME
Username
NZBGet control username
- Type: string
- Default:
nzbget
NZBGET_PASSWORD
Password
NZBGet control password
- Type: string (secret)
- Default: none
NZBGET_CATEGORY
Book Category
Category to assign to book downloads in NZBGet
- Type: string
- Default:
Books
NZBGET_CATEGORY_AUDIOBOOK
Audiobook Category
Category for audiobook downloads. Leave empty to use the book category.
- Type: string
- Default: empty string
SABNZBD_URL
SABnzbd URL
URL of your SABnzbd instance
- Type: string
- Default: none
SABNZBD_API_KEY
API Key
Found in SABnzbd: Config > General > API Key
- Type: string (secret)
- Default: none
SABNZBD_CATEGORY
Book Category
Category to assign to book downloads in SABnzbd
- Type: string
- Default:
books
SABNZBD_CATEGORY_AUDIOBOOK
Audiobook Category
Category for audiobook downloads. Leave empty to use the book category.
- Type: string
- Default: empty string
PROWLARR_USENET_ACTION
NZB Completion Action
Move deletes the job from your usenet client after import; Copy keeps it in the client
- Type: string (choice)
- Default:
move - Options:
move(Move),copy(Copy)