-
Notifications
You must be signed in to change notification settings - Fork 10
Configuration Reference
This page documents the configuration options defined in config/default.php.
COPS uses config/default.php as the source of default values. Local changes should normally be placed in config/local.php rather than directly modifying config/default.php.
- 1. Get COPS working
- 2. Configuration files and override order
- 3. Reader settings
- 4. Library administrator settings
- 5. OPDS and e-reader settings
- 6. Authentication, users, and sessions
- 7. Server and deployment settings
- 8. Templates, styles, and assets
- 9. Administration and developer settings
- 10. Alphabetical configuration index
Only a few settings are required for a basic installation.
calibre_directory must point to the directory containing Calibre's metadata.db file and the associated book folders.
The path must end with /.
$config['calibre_directory'] = '/path/to/calibre/';For a library in the current COPS directory:
$config['calibre_directory'] = './';Example with multiple Calibre databases:
$config['calibre_directory'] = [
'Main library' => '/data/calibre/main/',
'Reference library' => '/data/calibre/reference/',
];In a simple installation, COPS can usually determine its own URL. Set cops_full_url when:
- COPS is installed in a subdirectory.
- COPS is behind a reverse proxy.
- The generated links contain the wrong host or path.
- An older e-reader cannot resolve OPDS or OpenSearch links.
- COPS is accessed through more than one URL and proxy headers are not configured.
The value should include a trailing /.
$config['cops_full_url'] = 'https://books.example.com/cops/';For a local subdirectory:
$config['cops_full_url'] = '/cops/';Copy only the settings that need to be changed into config/local.php.
Example:
<?php
$config['calibre_directory'] = '/data/calibre/';
$config['cops_full_url'] = 'https://books.example.com/cops/';
$config['cops_title_default'] = 'My Library';Do not normally edit config/default.php. It is replaced or updated when COPS is upgraded.
After setting the library directory:
- Open the COPS URL in a browser.
- Confirm that the home page loads.
- Open a book detail page.
- Test downloading an EPUB or other supported format.
- Test an OPDS client if one will be used.
- If the library is not found, confirm that the configured directory contains
metadata.dband that the web-server user can read the library.
COPS supports global, user-specific, database-specific, and user/database-specific settings.
| File | Purpose |
|---|---|
config/default.php |
Default values supplied by COPS. Avoid editing this file directly. |
config/local.php |
Local settings for the complete installation. |
config/local.{remote_user}.php |
Settings for a particular authenticated user. |
config/local.db-{database}.php |
Request-handling settings for one database. Database numbering starts at 0. |
config/local.{remote_user}.db-{database}.php |
Settings for one user's database. Database numbering starts at 0 for that user. |
Use the most specific file needed for the setting.
For example:
config/local.php
config/local.alice.php
config/local.db-0.php
config/local.alice.db-0.php
Security: Configuration files can contain passwords, SMTP credentials, filesystem paths, and authentication settings. Protect them from direct web access.
These settings control what readers see and how they browse, search, read, and download books.
| Option | Default | Description |
|---|---|---|
cops_home_page |
'INDEX' |
Selects the initial COPS page. Examples include INDEX, ALL_RECENT_BOOKS, AUTHORS_FIRST_LETTER, and ALL_TAGS. |
cops_recentbooks_limit |
'50' |
Number of recent books shown on the home page. |
cops_random_books |
'0' |
Number of random books shown on the home page. Set to 0 to disable the Random or Discover section. |
cops_random_filter |
[] |
Optional filter for random books. Filters can use fields such as tags or language. |
cops_ignored_categories |
['format', 'identifier'] |
Hides selected categories from the home page and search. Supported values include author, book, series, tag, publisher, rating, language, format, identifier, libraries, allbooks, recent, and random. |
cops_max_item_per_page |
'48' |
Maximum number of items shown on a page. Use -1 for unlimited results. |
cops_show_not_set_filter |
['custom', 'rating', 'series', 'tag', 'identifier', 'format', 'libraries'] |
Enables “Not Set” counts and filters for selected fields, such as unrated or untagged books. |
Example random-book configuration:
$config['cops_random_books'] = '12';
$config['cops_random_filter'] = [
'tags' => 'Short Stories',
'language' => 'eng',
];| Option | Default | Description |
|---|---|---|
cops_author_split_first_letter |
'1' |
Groups authors by their first letter. |
cops_titles_split_first_letter |
'1' |
Groups titles by their first letter. |
cops_titles_split_publication_year |
'1' |
Groups titles by publication year when first-letter grouping is disabled. |
cops_publisher_split_first_letter |
'0' |
Groups publishers by their first letter. |
cops_series_split_first_letter |
'0' |
Groups series by their first letter. |
cops_tag_split_first_letter |
'0' |
Groups tags by their first letter. |
cops_html_sort_links |
['title', 'author', 'pubdate', 'rating', 'timestamp'] |
Sort links displayed in HTML page details. |
cops_html_filter_links |
['author', 'language', 'publisher', 'rating', 'series', 'tag'] |
Filter links displayed in HTML page details. |
cops_html_filter_limit |
'8' |
Number of HTML filter links shown per category. |
cops_html_tag_filter |
'0' |
Enables tag filtering in the HTML catalog. |
cops_books_filter |
[] |
Defines OPDS book filters, such as read/unread tag views. |
cops_use_fancyapps |
'1' |
Enables Lightboxes or popups in the default template with client-side rendering. |
Example tag filters:
$config['cops_books_filter'] = [
'All' => '',
'Unread' => '!Read',
'Read' => 'Read',
];The value !TagName means that books with the tag are excluded.
| Option | Default | Description |
|---|---|---|
cops_search_comments |
'0' |
Enables searching within book comments. |
cops_search_notes |
'0' |
Enables searching within extra notes. |
cops_search_annotations |
'0' |
Reserved for searching user annotations. This feature is currently unfinished. |
cops_search_strip_html |
'0' |
Removes HTML tags before searching comments, notes, or annotations. |
cops_normalized_search |
'0' |
Enables slower normalized searching that is less sensitive to case and diacritics. This feature is not recommended for production use. |
Example:
$config['cops_search_comments'] = '1';
$config['cops_search_notes'] = '1';
$config['cops_search_strip_html'] = '1';| Option | Default | Description |
|---|---|---|
cops_template |
'bootstrap2' |
Selects the default HTML template. Available values include default, bootstrap, bootstrap2, bootstrap5, and twigged. |
cops_style |
'default' |
Selects the visual style. Available values include base, default, eink, iphone, iphone7, and kindle. Some styles are available only with particular templates. |
cops_language |
'' |
Forces a language code. An empty value enables automatic language detection. |
cops_show_icons |
'1' |
Shows icons for authors, series, tags, and books in OPDS feeds. |
cops_icon |
'favicon.ico' |
Icon used by the HTML and OPDS catalogs. The value must refer to a real .ico file. |
cops_server_side_render |
'Kindle\/1\.\d|Kindle\/2\.\d|Kindle\/3\.\d|EBRD1101|EBRD1201|cybook|Kobo' |
Regular expression matching browsers that should use server-side rendering. The default targets several older e-readers. |
default_timezone |
'UTC' |
Default timezone used by COPS. |
The actual template and style available to a reader may depend on the deployment and device.
| Option | Default | Description |
|---|---|---|
cops_prefered_format |
['EPUB', 'PDF', 'AZW3', 'AZW', 'MOBI', 'CBR', 'CBZ'] |
Preferred format order. The first two formats are displayed in book entries; the remaining formats appear on the book detail page. |
cops_ignored_formats |
[] |
Formats that are hidden from COPS and normally cannot be downloaded. Files under the web directory may still be accessible. |
cops_calibre_custom_column |
[] |
Custom columns displayed on the index page. Values are Calibre lookup names. Use ['*'] to select all supported custom columns. |
cops_calibre_custom_column_list |
[] |
Custom columns displayed in list representations. Values are Calibre lookup names. |
cops_calibre_custom_column_preview |
[] |
Custom columns displayed in the book preview panel. Values are Calibre lookup names. |
cops_custom_date_split_year |
'1' |
Groups date-type custom columns by year. |
cops_custom_integer_split_range |
0 |
Groups integer custom columns into ranges. Values greater than 1 specify the number of ranges. A value of 1 uses cops_max_item_per_page ranges. |
calibre_categories_using_hierarchy |
[] |
Enables hierarchical tags or custom columns in templates that support them. This may require write access to the database if missing parent entries must be created. |
Composite custom columns are not supported by the custom-column display options.
Example:
$config['cops_calibre_custom_column'] = [
'genre',
'mycolumn',
];
$config['cops_calibre_custom_column_list'] = [
'last_read',
];
$config['cops_calibre_custom_column_preview'] = [
'rating_source',
];| Option | Default | Description |
|---|---|---|
cops_epub_reader |
'monocle' |
Selects the browser-based EPUB reader. Supported values include monocle, epubjs, or a custom reader URL ending in ?url=. |
cops_epubjs_reader_settings |
'{ arrows: "content", flow: "paginated", openbook: false }' |
JavaScript settings passed to the EPUB.js reader. Settings can control navigation arrows, pagination, scrolling, history, font size, and other reader behavior. |
cops_pdfjs_viewer |
'' |
Selects the PDF.js viewer. Use pdfjs-viewer.html?file= to enable it. |
cops_comic_reader |
'' |
Selects the online reader for comic files. Supported examples include comic-reader.html?url= and codedread-kthoom.html?bookUri=. |
The EPUB.js reader may require a compatible reader template.
The Kthoom comic reader requires the corresponding Composer package:
composer require mikespub/codedread-kthoomThe PDF.js viewer may require the complete mozilla/pdfjs-dist package if the minimal release package is insufficient.
| Option | Default | Description |
|---|---|---|
cops_download_page |
[] |
Enables downloading all books displayed on a page in selected formats. Use ['EPUB'] for EPUB only or ['ANY'] to use the preferred-format order. |
cops_download_template |
'{author}{series:| - | #}{series_index} - {title}' |
Filename template for books inside a ZIP archive created by a bulk download. The pipe characters are template separators and are escaped here for Markdown. |
cops_download_filename |
'' |
Partial filename template for an individually downloaded format. An empty value uses COPS's default filename logic. |
cops_update_epub-metadata |
'0' |
Updates EPUB metadata before download. |
cops_x_accel_redirect |
'' |
Selects server-assisted file delivery for downloads outside the web directory. Supported values include X-Accel-Redirect and X-Sendfile. |
Example:
$config['cops_download_page'] = ['EPUB'];
$config['cops_download_filename'] =
'{author_sort}{series:| - | #}{series_index} - {title}';Supported filename fields include:
{title}{title_sort}{authors}{author_sort}{author}{series}{series_index}
| Option | Default | Description |
|---|---|---|
cops_provide_kepub |
'0' |
Renames downloaded EPUB files to .kepub.epub so that Kobo recognizes them as Kepub files. URL rewriting must be enabled. |
cops_kepubify_path |
'' |
Path to the external kepubify tool used to convert EPUB files to Kobo Kepub format. |
Example:
$config['cops_kepubify_path'] = '/usr/bin/kepubify';
$config['cops_provide_kepub'] = '1';| Option | Default | Description |
|---|---|---|
cops_mail_configuration |
null |
SMTP configuration for Send to Kindle or email delivery. The sender address must be authorized by the Kindle account. |
Example:
$config['cops_mail_configuration'] = [
'smtp.host' => 'smtp.example.com',
'smtp.username' => 'username',
'smtp.password' => 'password',
'smtp.secure' => 'tls',
'smtp.port' => '587',
'address.from' => 'cops@example.com',
'subject' => 'Sent by COPS: ',
];Security: Do not commit SMTP passwords to a public repository. Use a protected local configuration file.
These settings control which Calibre content COPS exposes and how it is organized.
| Option | Default | Description |
|---|---|---|
calibre_directory |
'./' |
Directory containing Calibre's metadata.db file and book subdirectories. The path must end with /. It can also be an array for multiple databases. |
calibre_external_storage |
'' |
Base URL for book files stored outside the local COPS filesystem. The local metadata.db file is still required. |
calibre_database_field_cover |
'' |
Name of an additional cover field in the Calibre books table, typically created by epub-loader. |
calibre_database_field_image |
'' |
Name of an additional image field in the Calibre authors or series tables, typically created by epub-loader. |
External storage may not support all COPS features. The configuration comments specifically identify limitations such as:
- No Kepub version.
- No metadata updates.
- No Monocle EPUB reader.
- Other features may also be unavailable depending on the storage implementation.
Example:
$config['calibre_external_storage'] =
'https://storage.example.com/calibre/';| Option | Default | Description |
|---|---|---|
cops_calibre_virtual_libraries |
[] |
List of Calibre virtual libraries exposed by COPS. Use ['*'] to select all Calibre virtual libraries. Not supported together with multiple databases. |
cops_virtual_library |
'0' |
Default virtual library selected by COPS. The value is based on the Calibre virtual-library list and starts at 1. |
cops_database_filter |
[] |
Filters books exposed from a Calibre database by tags, languages, or other supported metadata. Negative filters start with !. |
Example:
$config['cops_calibre_virtual_libraries'] = [
'Short Stories in English',
'Fiction from this Century',
];
$config['cops_virtual_library'] = '1';Example database filter:
$config['cops_database_filter'] = [
'tags' => 'Short Stories',
'language' => 'eng',
];Negative filters can be specified with !:
$config['cops_database_filter'] = [
'tags' => '!Short Stories',
];$config['calibre_directory'] = [
'Main library' => '/data/calibre/main/',
'Research library' => '/data/calibre/research/',
];Virtual libraries are not supported in combination with multiple databases. Database filters can be used in multi-database and multi-user configurations by placing them in the appropriate local configuration file.
| Option | Default | Description |
|---|---|---|
cops_browse_books_directory |
'' |
Directory containing book files outside the normal Calibre library. This feature is marked as work in progress. |
cops_browse_books_getfiles |
'' |
File containing a pre-generated list of book files in additional folders. Useful for rclone mounts or large filesystems on slow devices. This feature is marked as work in progress. |
Example file-list generation:
rclone lsjson -R --fast-list --no-mimetype --files-only \
/volume1/calibre/ > getfiles.json| Option | Default | Description |
|---|---|---|
cops_author_name |
'Sébastien Lucas' |
Author or publisher name shown in catalog metadata. |
cops_author_uri |
'https://blog.slucas.fr' |
URI associated with the catalog author. |
cops_author_email |
'sebastien@slucas.fr' |
Email address associated with the catalog author. |
cops_title_default |
'COPS' |
Default catalog title. |
cops_subtitle_default |
'' |
Default catalog subtitle. |
default_timezone |
'UTC' |
Default timezone used by COPS. |
Example:
$config['cops_author_name'] = 'Example Public Library';
$config['cops_author_uri'] = 'https://library.example.com/';
$config['cops_author_email'] = 'library@example.com';
$config['cops_title_default'] = 'Example E-book Library';
$config['cops_subtitle_default'] = 'Online catalog';
$config['default_timezone'] = 'Europe/London';These options affect OPDS clients, mobile reading applications, and older e-readers.
| Option | Default | Description |
|---|---|---|
cops_opds_sort_links |
['title', 'author', 'pubdate', 'rating', 'timestamp'] |
Sort links exposed as OPDS facets. The client must support OPDS facets. |
cops_opds_filter_links |
['author', 'language', 'rating', 'tag'] |
Filter links exposed as OPDS facets. The client must support OPDS facets. |
cops_opds_filter_limit |
'8' |
Number of OPDS filter links shown per category. |
cops_opds_thumbnail_height |
'164' |
Thumbnail height used in OPDS feeds. Book-detail images use twice this height. |
cops_show_icons |
'1' |
Shows icons for authors, series, tags, and books in OPDS feeds. |
cops_generate_invalid_opds_stream |
'0' |
Generates a less strictly compliant OPDS stream for clients that cannot search compliant OPDS catalogs. Use only when required by a particular client. |
To disable OPDS sorting or filtering:
$config['cops_opds_sort_links'] = [];
$config['cops_opds_filter_links'] = [];| Option | Default | Description |
|---|---|---|
cops_full_url |
'' |
Full URL prefix used when COPS cannot correctly determine its public URL. This can be required by older e-readers. |
cops_server_side_render |
'Kindle\/1\.\d|Kindle\/2\.\d|Kindle\/3\.\d|EBRD1101|EBRD1201|cybook|Kobo' |
Regular expression matching devices that should receive server-side rendered pages. |
cops_generate_invalid_opds_stream |
'0' |
Compatibility mode for non-compliant OPDS clients. |
cops_fetch_protect |
'0' |
Protects direct book-fetch URLs until a user has visited an authenticated COPS page. Intended mainly for certain older Sony e-readers and Aldiko. |
Examples of clients or devices covered by the default server-side rendering expression include Kindle, Sony PRS-T1, Sony PRS-T2, Cybook, and Kobo.
| Option | Default | Description |
|---|---|---|
cops_prefered_format |
['EPUB', 'PDF', 'AZW3', 'AZW', 'MOBI', 'CBR', 'CBZ'] |
Order in which formats are preferred for display and downloads. |
cops_ignored_formats |
[] |
Formats hidden from the catalog and normally excluded from downloads. |
cops_provide_kepub |
'0' |
Provides EPUB files with a .kepub.epub filename for Kobo devices. |
cops_kepubify_path |
'' |
Path to the kepubify conversion tool. |
These settings control access to COPS and user-specific configuration.
| Option | Default | Description |
|---|---|---|
cops_basic_authentication |
null |
Enables PHP basic authentication using a username/password array or a Calibre user database. |
cops_form_authentication |
null |
Enables form authentication through login.html. |
cops_http_auth_user |
'PHP_AUTH_USER' |
Server variable used to obtain the authenticated remote username. Common alternatives include REMOTE_USER or X-WEBAUTH-USER. |
calibre_user_database |
null |
Path to the Calibre Content Server user database. It can be used with basic authentication, form authentication, or reverse-proxy authentication. |
Example of basic authentication:
$config['cops_basic_authentication'] = [
'username' => 'reader',
'password' => 'change-this-password',
];Example of form authentication:
$config['cops_form_authentication'] = [
'username' => 'reader',
'password' => 'change-this-password',
];To disable COPS-managed authentication:
$config['cops_basic_authentication'] = null;
$config['cops_form_authentication'] = null;| Configuration file | Use |
|---|---|
config/local.php |
Common settings for all users and databases. |
config/local.{remote_user}.php |
Settings for one authenticated user. |
config/local.db-{database}.php |
Settings for one database. |
config/local.{remote_user}.db-{database}.php |
Settings for one user's database. |
This allows different users to see different libraries or use different request-handling settings.
| Option | Default | Description |
|---|---|---|
cops_session_timeout |
365 * 24 * 60 * 60 |
Session lifetime in seconds. Sessions are used to validate book fetching, ZIP creation, and COPS customization. |
cops_session_name |
'COPS_SESSID' |
Name of the COPS session cookie. Use a distinct name to avoid conflicts with other PHP applications. |
cops_fetch_protect |
'0' |
Ensures that a user visits an authenticated COPS page before accessing a direct fetch URL. Mainly intended for older Sony readers or Aldiko. |
Security: Use HTTPS for authentication and book delivery.
Security: The Calibre user database may contain passwords in clear text according to the configuration comments. Protect the database file carefully.
These options are intended for the person deploying COPS behind a web server, reverse proxy, CDN, or container environment.
| Option | Default | Description |
|---|---|---|
cops_full_url |
'' |
Fixed URL prefix used to generate public links. Include a trailing /. |
cops_front_controller |
'' |
Front-controller path used to generate route URLs, commonly index.php. The web server must rewrite the generated URLs correctly. |
cops_trusted_proxies |
'' |
Defines trusted proxy addresses when COPS is behind a reverse proxy. |
cops_trusted_headers |
[] |
Defines trusted forwarded headers used to determine the original request host, scheme, or client information. |
cops_resources_cdn |
'' |
CDN base URL for COPS resources such as images, scripts, and stylesheets. |
cops_assets |
'vendor/npm-asset' |
URL prefix used by templates for JavaScript and CSS assets. |
cops_templates_directory |
dirname(__DIR__) . '/templates/' |
Filesystem directory containing COPS templates. The path must end with /. |
Example reverse-proxy configuration:
$config['cops_trusted_proxies'] = [
'127.0.0.1',
];
$config['cops_trusted_headers'] = [
'x-forwarded-for',
'x-forwarded-host',
'x-forwarded-proto',
];
$config['cops_full_url'] = 'https://books.example.com/cops/';The exact trusted proxy and header configuration depends on the web server and reverse-proxy architecture.
| Option | Default | Description |
|---|---|---|
cops_x_accel_redirect |
'' |
Selects server-assisted file delivery. Use X-Accel-Redirect for Nginx or X-Sendfile for supported Caddy, Lighttpd, or Apache configurations. |
cops_x_accel_mapping |
'' |
Maps the real filesystem path known to PHP to the URI path known by Nginx when using X-Accel-Redirect. |
cops_front_controller |
'' |
Controls route URLs and may be required when the web server uses a front controller and rewrite rules. |
Example path mapping:
$config['cops_x_accel_redirect'] = 'X-Accel-Redirect';
$config['cops_x_accel_mapping'] = [
'/volume1/Calibre/' => '/mapped/library/',
];Corresponding Nginx example:
location /mapped/library/ {
internal;
alias /volume1/Calibre/;
}The path visible to PHP and the URI used by Nginx do not have to be identical when cops_x_accel_mapping is configured.
| Option | Default | Description |
|---|---|---|
cops_html_thumbnail_height |
'225' |
Thumbnail height used in the HTML catalog. Book-detail images use twice this height. |
cops_opds_thumbnail_height |
'164' |
Thumbnail height used in OPDS feeds. Book-detail images use twice this height. |
cops_thumbnail_handling |
'' |
Controls thumbnail generation. Empty value generates thumbnails, 1 sends full-size images, and a URL sends a constant image. |
cops_thumbnail_default |
'images/icons/icon144.png' |
Default image used when a book has no cover. |
cops_thumbnail_cache_directory |
'' |
Directory used to cache resized thumbnails. The path must end with / and must be writable by the web server. |
cops_resources_cdn |
'' |
CDN base URL for COPS resources. |
cops_show_icons |
'1' |
Shows catalog icons in HTML and OPDS output. |
Thumbnail handling modes:
| Value | Behavior |
|---|---|
'' |
Generate a resized thumbnail. This uses more CPU but less network bandwidth. |
'1' |
Send the full-size image. This uses less CPU but more network bandwidth. |
| An image URL | Use the same image for all thumbnails. |
Example thumbnail cache:
$config['cops_thumbnail_cache_directory'] = '/var/cache/cops/thumbnails/';| Option | Default | Description |
|---|---|---|
cops_template |
'bootstrap2' |
Default HTML template. Available values include default, bootstrap, bootstrap2, bootstrap5, and twigged. |
cops_style |
'default' |
Default style. Available values include base, default, eink, iphone, iphone7, and kindle. |
cops_templates_directory |
dirname(__DIR__) . '/templates/' |
Directory containing COPS templates. |
cops_twig_templates |
['twigged', 'twigged5', 'admin', 'markdown'] |
Templates that use the Twig template engine. |
cops_assets |
'vendor/npm-asset' |
URL prefix used by templates for JavaScript and CSS assets. |
cops_customize |
[] |
Default customization values per user. This feature is marked as unfinished in the source configuration. |
cops_language |
'' |
Forced language code. Empty means automatic language detection. |
The cops_customize setting should be treated as experimental until its behavior is fully documented.
These options are intended for administrators, developers, and test installations.
| Option | Default | Description |
|---|---|---|
cops_enable_admin |
false |
Enables administrative features. false disables them, true enables them for everyone, a string enables them for one authenticated user, and an array enables them for selected users. |
cops_api_key |
'' |
API key for selected restricted REST API features. The source marks this as development-only. |
Example restricted admin access:
$config['cops_enable_admin'] = 'admin';Example for multiple users:
$config['cops_enable_admin'] = [
'admin',
'librarian',
];Security: Do not enable administrative features for everyone when COPS is accessible from the Internet.
| Option | Default | Status and description |
|---|---|---|
cops_normalized_search |
'0' |
Experimental. Enables more tolerant but slower searching. |
cops_browse_books_directory |
'' |
Work in progress. Browses books outside the main Calibre library. |
cops_browse_books_getfiles |
'' |
Work in progress. Uses a pre-generated file list for additional folders. |
cops_search_annotations |
'0' |
Unfinished. Intended to search user annotations. |
cops_customize |
[] |
Unfinished. Provides default customization values per user. |
cops_enable_admin |
false |
Security-sensitive administration feature. |
cops_api_key |
'' |
Development-only API access setting. |
cops_pdfjs_viewer |
'' |
May require the complete PDF.js package. |
cops_comic_reader |
'' |
Optional reader integration; some choices require Composer packages. |
cops_epubjs_reader_settings |
'{ arrows: "content", flow: "paginated", openbook: false }' |
Reader-specific JavaScript configuration. |
| Option | Default | Description |
|---|---|---|
cops_generate_invalid_opds_stream |
'0' |
Compatibility setting for clients that cannot use a strictly compliant OPDS stream. |
cops_fetch_protect |
'0' |
Compatibility and security setting for older readers that cannot download from a password-protected catalog. |
cops_server_side_render |
'Kindle\/1\.\d|Kindle\/2\.\d|Kindle\/3\.\d|EBRD1101|EBRD1201|cybook|Kobo' |
Device matching expression for server-side rendering. |
The following index lists every configuration option in config/default.php and identifies its primary topic.
| Option | Primary topic |
|---|---|
calibre_categories_using_hierarchy |
Library administrator: custom columns and categories |
calibre_database_field_cover |
Library administrator: Calibre libraries |
calibre_database_field_image |
Library administrator: Calibre libraries |
calibre_directory |
Getting started and Calibre libraries |
calibre_external_storage |
Library administrator: Calibre libraries |
calibre_user_database |
Authentication and users |
cops_api_key |
Administration and developer settings |
cops_assets |
Templates, styles, and assets |
cops_author_email |
Catalog identity |
cops_author_name |
Catalog identity |
cops_author_split_first_letter |
Reader settings: browsing |
cops_author_uri |
Catalog identity |
cops_basic_authentication |
Authentication and users |
cops_books_filter |
Reader settings: browsing and filtering |
cops_browse_books_directory |
Library administrator: additional book folders |
cops_browse_books_getfiles |
Library administrator: additional book folders |
cops_calibre_custom_column |
Reader settings: custom columns |
cops_calibre_custom_column_list |
Reader settings: custom columns |
cops_calibre_custom_column_preview |
Reader settings: custom columns |
cops_calibre_virtual_libraries |
Library administrator: virtual libraries |
cops_comic_reader |
Reader settings: online readers |
cops_database_filter |
Library administrator: database filters |
cops_download_filename |
Reader settings: downloads |
cops_download_page |
Reader settings: downloads |
cops_download_template |
Reader settings: downloads |
cops_enable_admin |
Administration and developer settings |
cops_epub_reader |
Reader settings: online readers |
cops_epubjs_reader_settings |
Reader settings: online readers |
cops_fetch_protect |
Authentication, users, and sessions |
cops_form_authentication |
Authentication and users |
cops_front_controller |
Server and deployment |
cops_full_url |
Getting started and server deployment |
cops_generate_invalid_opds_stream |
OPDS and e-reader compatibility |
cops_home_page |
Reader settings: home page |
cops_html_filter_links |
Reader settings: browsing and filtering |
cops_html_filter_limit |
Reader settings: browsing and filtering |
cops_html_tag_filter |
Reader settings: browsing and filtering |
cops_html_thumbnail_height |
Server and deployment: images |
cops_html_sort_links |
Reader settings: browsing and sorting |
cops_icon |
Reader settings: appearance |
cops_ignored_categories |
Reader settings: home page and search |
cops_ignored_formats |
Reader settings: formats |
cops_kepubify_path |
Reader settings: Kobo |
cops_language |
Templates, styles, and localization |
cops_mail_configuration |
Reader settings: Kindle and email |
cops_max_item_per_page |
Reader settings: home page and catalog content |
cops_normalized_search |
Administration and developer settings |
cops_opds_filter_links |
OPDS and e-reader settings |
cops_opds_filter_limit |
OPDS and e-reader settings |
cops_opds_sort_links |
OPDS and e-reader settings |
cops_opds_thumbnail_height |
OPDS and e-reader settings |
cops_pdfjs_viewer |
Reader settings: online readers |
cops_prefered_format |
Reader settings: formats |
cops_provide_kepub |
Reader settings: Kobo |
cops_random_books |
Reader settings: home page |
cops_random_filter |
Reader settings: home page |
cops_recentbooks_limit |
Reader settings: home page |
cops_resources_cdn |
Server and deployment |
cops_search_annotations |
Reader settings: searching |
cops_search_comments |
Reader settings: searching |
cops_search_notes |
Reader settings: searching |
cops_search_strip_html |
Reader settings: searching |
cops_server_side_render |
OPDS and e-reader compatibility |
cops_session_name |
Authentication, users, and sessions |
cops_session_timeout |
Authentication, users, and sessions |
cops_show_icons |
Reader settings: appearance and OPDS |
cops_show_not_set_filter |
Reader settings: home page and filtering |
cops_style |
Templates, styles, and assets |
cops_tag_split_first_letter |
Reader settings: browsing |
cops_template |
Templates, styles, and assets |
cops_templates_directory |
Templates, styles, and assets |
cops_titles_split_first_letter |
Reader settings: browsing |
cops_titles_split_publication_year |
Reader settings: browsing |
cops_thumbnail_cache_directory |
Server and deployment: images |
cops_thumbnail_default |
Server and deployment: images |
cops_thumbnail_handling |
Server and deployment: images |
cops_trusted_headers |
Server and deployment: reverse proxies |
cops_trusted_proxies |
Server and deployment: reverse proxies |
cops_twig_templates |
Templates, styles, and assets |
cops_update_epub-metadata |
Reader settings: downloads |
cops_use_fancyapps |
Reader settings: appearance |
cops_virtual_library |
Library administrator: virtual libraries |
cops_x_accel_mapping |
Server and deployment: accelerated downloads |
cops_x_accel_redirect |
Server and deployment: accelerated downloads |
default_timezone |
Library administrator: catalog identity |