Adding the COPS eBook Library to Synology DSM


As technical reference material becomes digitized, the need to organize and quickly find it grows. Calibre is a feature-rich, free e-book management system that supports finding and downloading metadata, tagging, searching, and sorting your library.

Calibre is provided as a rich, desktop client application that works great on whatever computer you are using.You can even store the library on a shared folder to allow access from multiple machines. With a Synology NAS and its Disk Station Manager software you can install the Calibre OPDS (and HTML) PHP Server (COPS) web server and make the library available from anywhere.


  1. Install/enable DSM Web Station

  2. Install Apache HTTP Server

  3. Install PHP 5.6

  4. Download the latest COPS package from SynoCommunity, currently v1.0.1-5 beta

  5. Use the Manual Install feature in DSM Package Center to install the COPS package.

  6. Create a new top-level shared folder such as ‘calibre’ to hold the e-book library


Sébastien Lucas’ wiki covers the steps to configure COPS for Synology. My notes for DSM 6.2.2 are:

1. You need to ssh to your NAS

2. Packages are located at


3. Websites are located at


4. COPS website is


5. Copy the example local configuration file to edit with local settings:

cp /volume1/web/cops/config_local.php.example /volume1/web/cops/config_local.php

6. Edit the config_local.php to specify the location of the Calibre library:

$config['calibre_directory'] = '/volume1/calibre/';


If the COPS website will be exposed outside of the network follow How do I protect folders under the shared folder “web” from unprivileged access?. Here’s how to set up simple but effective user and password digest authentication:

# make a directory to hold passwords (must be accessible by Apache)
> mkdir /volume1/web/passwd

# create a digest admin password file
> htdigest -c /volume1/web/passwd/ realm admin

# create Apache hypertext access file
# see
> vim /volume1/web/passwd/.htaccess
AuthUserFile /volume1/web/passwd/
AuthType Digest
AuthName "realm" 
Require valid-user  

# create a digest user password file
> htdigest -c /volume1/web/passwd/ cops billyjoe

# create Apache hypertext access file
# see
> vim /volume1/web/cops/.htaccess 
AuthUserFile /volume1/web/passwd/ 
AuthType Digest 
AuthName "cops" 
Require valid-user 


COPS List View, default theme:

Thumbnail view:

Detailed view:

Calibre thumbnail By Kovid Goyal -, GPLv3,

Recent Posts

See All

Here are some resources to help with learning JUnit and Maven. This list was originally prepared for students taking CS-320 Software Testing, Automation and Quality Assurance. Using JUnit in Eclipse E