This article guides you through the process of setting up the Nginx Proxy Manager (NPM) and Calibre-Web to allow collections and books to be synchronised to the Kobo e-reader. Other features like access to Kobo store, Overdrive, Google Drive and Dropbox will not be affected.
- What is articulate in the rest of this article is to enable public secured Internet accessible synchronisation endpoint for Kobo e-reader.
- Calibre-Web presents book download endpoint as HTTP (non-HTTPS) with a port number. Other than the implicit understanding that HTTP and HTTP runs on port
80/tcpand443/tcprespectively, it is not possible to have both HTTP and HTTPS running on the same port number (e.g.,20080/tcp). - Only EPUB formatted books can be synchronised. That is, other formats like PDF won't be synchronised due to restrictions on Kobo e-reader.
- Kobo e-reader (e.g., Kobo Libra Color)
- A computer
- USB data cable to connect the Kobo e-reader to the computer
- Nginx Proxy Manager configured to listen on ports
80/tcpand443/tcp, and valid SSL certificate (e.g., Let's Encrypt) - Calibre-Web with EPUB books
Navigate to Advanced > Custom Nginx Configuration
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Script-Name //;
proxy_cookie_path / "/; Secure";
proxy_busy_buffers_size 1024k;
proxy_buffers 4 512k;
proxy_buffer_size 1024k;
client_max_body_size 50M;
Navigate to Admin > Edit Basic Configuration > Feature Configuration
- Check "Enable Kobo Sync"
- Check "Proxy unknown requests to Kobo Store"
- Specify
80for "Server External Port (for port forwarded API calls)" - Leave "Embed Metadata to Ebook File on Download/Conversion/e-mail (needs Calibre/Kepubify binaries)" Unchecked
Navigate to User Profile (click on your username on the top bar)
- Check "Sync only books in selected shelves with Kobo"
- Under "Kobo Sync Token", Click On "Create/View" button
- Copy the entire
api_endpoint=http://url-and-token
- On the left of Calibre-Web, Click on "Create a Shelf"
- Fill in the name of the shelf (e.g.,
Kobo shelf) - Check "Sync this shelf with Kobo device"
- Click on "Save" button
- Navigate to your books (EPUB)
- Click on a book (EPUB) and view its book details
- At the bottom of the "Book Details", Click on "Add to shelf" and select the newly created shelf (e.g.,
Kobo shelf)
- Plug in the Kobo e-reader to your computer using a USB cable
- Navigate to folder
.kobo\Kobo - Duplicate the file
Kobo.eReader.confand name the duplicated file asKobo.eReader.conf.backup - Open the file
Kobo.eReader.confusing a text editor - In the file
Kobo.eReader.conf, navigate to the section[OneStoreServices] - Replace the line starting with
api_endpoint=https://storeapi.kobo.comwith the one created earlier under Enabling Kobo Sync (per Calibre-Web user) (api_endpoint=http://url-and-token) - Safely eject the e-reader
- Connect the Kobo e-reader to the WiFi
- Click on the sync button and it should create a collection with the same name as the shelf you created earlier (e.g.,
Kobo shelf). The books (EPUB) should also be downloaded automatically
To revert back the changes you have made on the Kobo configuration, simply rename the file Kobo.eReader.conf.backup back as Kobo.eReader.conf
Thank you for the excellent description. I had this working on my local network with http. With your suggestion on the NGINX custom settings, I was able to make Internet sync work. 🍻
The one thing I had to do was remove any non-EPUB versions from my library using Calibre desktop. For some reason, if a KEPUB or MOBI existed, even with an EPUB, it would fail to sync.