The Calibre library server is a great way to store your eBooks. It allows you to:


Install the Calibre package. You might also want rsync to upload books.

apt install -y calibre rsync
mkdir /opt/calibre

Either upload your existing library using rsync. For example to /opt/calibre/.

cd ~/Documents
rsync -avuP your-library-dir

Or create a library and add a book to it:

cd /opt/calibre
calibredb add book.epub --with-library your-library

For more information about the calibredb command see man calibredb.

Add a new user to protect your server:

calibre-server --manage-users

Creating a service

Create a new file /etc/systemd/system/calibre-server.service and add the following:

Description=Calibre library server

ExecStart=/usr/bin/calibre-server --enable-auth --enable-local-write /opt/calibre/your_library --listen-on


You can change the port with the --port prefix. Additional information man calibre-server.

Issue systemctl daemon-reload to apply the changes.

Enable and start the service.

systemctl enable calibre-server
systemctl start calibre-server

A reverse proxy with Nginx

Create a new file /etc/nginx/sites-available/calibre and enter the following:

server {
    listen 80;
    client_max_body_size 64M; # to upload large books
    server_name ;

    location / {

Issue a Let's Encrypt certificate. Detailed instructions and additional information.

certbot --nginx

Now just go to The server will request an username and a password.


After login you will see something like this.



Author: rflx – website -- XMR: 48T5XpHTXAZ5Nn8YCypA4aWn1ffQLHJkFGDArXQB6cmrP6cqLY72cu7CR2iq2MmL5Ndu3d47e5MKjGpL4prYgdrTCFAHD9c