Skip to content

Calibre

hardbacknutter edited this page Jan 14, 2026 · 6 revisions

Synchronization

By default, synchronisation with a Calibre Content Server (CCS) is with the main Calibre Library. Simply set up the connection details in settings and map the Library to a Bookshelf. Optionally set a download folder. A menu entry on the main menu provides synchronisation control. You will need to restart the app to make this menu item visible.

Virtual Libraries on Calibre

To install the optional code into CCS which provides Virtual Library support, see Calibre AJAX extension. If your CCS is running on Linux then it's straightforward. If you're using the CCS binary on Windows you will need to either run the development CCS or do the compilation manually. Both are documented but are not suited for casual users. My advice is to run your CCS on a raspberry-pi (or similar NAS devices).

Note that this has become partially obsolete as the same functionality can be organised by applying filters on the book-list. Use what suits you best.

Running Calibre Content Server on a Linux box.

This guide a quick how-to for the advanced user. It's assumed you know your way around Linux, systemd, firewalld and related technology.

A more or less standard systemd service file for calibre: calibre-server.service

[Unit]
Description=Calibre Content Server
After=network-online.target
Wants=network-online.target
 
[Service]
Type=simple
User=calibre
Group=calibre
ExecStart=/usr/bin/calibre-server \
    --disable-use-bonjour \
    --enable-auth \
    --userdb=/home/calibre/users.db \
    --listen-on=192.168.0.202 \
    --port=9443 \
    --ssl-keyfile=/opt/ssl-setup/192.168.0.202.key.pem \
    --ssl-certfile=/opt/ssl-setup/192.168.0.202.cert-chain.pem \
    --log=/home/calibre/log/server.log \
    "/home/calibre/library"

[Install]
WantedBy=multi-user.target

Copy the service file to /etc/systemd/system/ and enable/start the service with:

sudo systemctl enable calibre-server
sudo systemctl start calibre-server

Open a port on the firewall:

sudo firewall-cmd --add-port=9443/tcp
sudo firewall-cmd --runtime-to-permanent

If you want to use Apache in front of Calibre, configure mod_proxy_html by editing /etc/httpd/conf/httpd.conf

<VirtualHost _default_:8443>
ServerName 192.168.0.202:8443

SSLProxyEngine on

# Proxy Pass to Calibre Content Server on port 9443
ProxyPass / https://192.168.0.202:9443/
ProxyPassReverse / https://192.168.0.202:9443/
SSLCertificateFile /opt/ssl-setup/192.168.0.202.cert-chain.pem
SSLCertificateKeyFile /opt/ssl-setup/192.168.0.202.key.pem

Clone this wiki locally