Calibre Raspberry Pi



The calibre Content server allows you to access your calibrelibraries and read books directly in a browser on your favorite mobile phone ortablet device. As a result, you do not need to install any dedicated bookreading/management apps on your phone. Just use the browser. The serverdownloads and stores the book you are reading in an off-line cache so that youcan read it even when there is no internet connection.

Contents

To start the server, click the Connect/share button and chooseStart Content server. You might get a message from your computer’sfirewall or anti-virus program asking if it is OK to allow access tocalibre.exe. Click the Allow or OK button. Then open a browser(preferably Chrome or Firefox) in your computer and type in the followingaddress:

The Raspberry Pi is a tiny and affordable computer that you can use to learn programming through fun, practical projects. Join the global Raspberry Pi community. Step 0: Setup Raspberry Pi. If you haven’t done it already you can easily set it up by following the Quick Start Guide on raspberrypi.org. Step 1: Install Calibre on Raspberry Pi. This one was a bit harder than I expected. The official site says “Please do not use your distribution provided calibre package, as those are often buggy/outdated.

This will open a page in the browser showing you your calibre libraries, clickon any one and browse the books in it. Click on a book, and it will show youall the metadata about the book, along with buttons to Read bookand Download book. Click the Read book button tostart reading the book.

Note

The address used above http://127.0.0.1:8080 will only work onthe computer that is running calibre. To access the server from othercomputers/phones/tablets/etc. you will need to do a little more work,as described in the next section.

There are two types of remote device access that you will typically need. Thefirst, simpler kind is from within your home network. If you are runningcalibre on a computer on your home network and you have also connected yourother devices to the same home network, then you should be easily able toaccess the server on those devices.

After starting the server in calibre as described above, click theConnect/share button again. Instead of the Start Contentserver action, you should see a Stop Content server actioninstead. To the right of this action will be listed an IP addressand port number. These look like a bunch of numbers separated by periods. Forexample:

These numbers tell you what address to use to connect to the server in yourdevices. Following the example above, the address becomes:

The first part of the address is always http:// the next part is the IPaddress, which is the numbers before the comma and finally we have the portnumber which must be added to the IP address with a colon (:). If you arelucky, that should be all you need and you will be looking at thecalibre libraries on your device. If not, read on.

Trouble-shooting the home network connection¶

If you are unable to access the server from your device, try the followingsteps:

  1. Check that the server is running by opening the addresshttp://127.0.0.1:8080 in a browser running on the same computer asthe server.

  2. Check that your firewall/anti-virus is allowing connections to yourcomputer on the port 8080 and to the calibre program. Theeasiest way to eliminate the firewall/anti-virus as the source ofproblems is to temporarily turn them both off and then try connecting. Youshould first disconnect from the internet, before turning off thefirewall, to keep your computer safe.

  3. Check that your device and computer are on the same network. This meansthey should both be connected to the same wireless router. In particularneither should be using a cellular or ISP provided direct-WiFi connection.

  4. If you have non-standard networking setup, it might be that the IPaddress shown on the Connect/share menu is incorrect.In such a case you will have to figure out what the correct IP addressto use is, yourself. Unfortunately, given the infinite diversity ofnetwork configurations possible, it is not possible to give you aroadmap for doing so.

  5. If you have setup a username and password, first try it without thatto see if it is causing issues. Some e-ink devices have browsers thatdo not handle authentication. You can sometimes workaround this byincluding the username and password in the URL, for example:http://username:password@192.168.1.2:8080.

  6. If you are stuck, you can always ask for help in the calibre user forums.

Warning

Before doing this you should turn on username/password protection in theserver, otherwise anyone in the world will be able to access your books.Go to Preferences → Sharing → Sharing over the net and enable theoption to Require username and password to access the contentserver.

Calibre Raspberry Pi

While the particular details on setting up internet access vary depending onthe network configuration and type of computer you are using, the basic schemais as follows.

  1. Find out the external IP address of the computer you are going to run theserver on. You can do that by visiting the site What is my IP address in a browser running on the computer.

  2. If the computer is behind a router, enable port forwarding on the routerto forward the port 8080 (or whatever port you choose to run thecalibre Content server on) to the computer.

  3. Make sure the calibre server is allowed through any firewalls/anti-virusprograms on your computer.

  4. Now you should be able to access the server on any internet-connecteddevice using the IP address you found in the first step. For example,if the IP address you found was 123.123.123.123 and the port you areusing for the calibre server is 8080, the address to use on yourdevice becomes: http://123.123.123.123:8080.

  5. Optionally, use a service like no-ip tosetup an easy to remember address to use instead of the IP address youfound in the first step.

Note

For maximum security, you should also enable HTTPS on the content server.You can either do so directly in the server by providing the path tothe HTTPS certificate to use in the advanced configuration options forthe server, or you can setup a reverse proxy as described below, to usean existing HTTPS setup.

The server interface is a simplified version of the main calibre interface,optimised for use with touch screens. The home screen shows you booksyou are currently reading as well as allowing to choose a calibre library youwant to browse. The server in calibre gives you access to all your libraries,not just a single one, as before.

The server book list is a simple grid of covers. Tap on a cover to see thedetailed metadata for a book, or to read the book. If you prefer a moredetailed list, you can change the default view by clicking the three verticaldots in the top right corner.

Sorting and searching of the book list should be familiar to calibre users.They can be accessed by clicking their icons in the top right area. They bothwork exactly the same as in the main calibre program. The search page evenallows you to construct search queries by clicking on authors/tags/etc., just asyou can using the Tag browser in the main program.

A much loved feature of the main program, Virtual libraries ispresent in the server interface as well. Click the three vertical dots in thetop right corner to choose a Virtual library.

You can read any book in your calibre library by simply tapping onit and then tapping the Read book button. The books readeris very simple to operate. You can both tap and swipe to turn pages. Swipingup/down skips between chapters. Tapping the top quarter of the screen gets youthe detailed controls and viewer preferences.

If you leave the Content server running, you can even open the same book onmultiple devices and it will remember your last read position. If it does notyou can force a sync by tapping in the top quarter and choosingSync.

The new calibre server makes lots of use of advanced HTML 5 and CSS 3 features.As such it requires an up-to-date browser to use. It has been tested on AndroidChrome and iOS Safari as well as Chrome and Firefox on the desktop.

The server is careful to use functionality that has either been alreadystandardised or is on the standards track. As such if it does not currentlywork with your favorite browser, it probably will once that browser has caughtup.

If you are using a particularly old or limited browser or you don’t like to runJavaScript, you can use the mobile view, by simply adding /mobile to theserver address.

Note

On iOS, Apple allows only a single browser engine, so Firefox, Chrome andSafari are all actually the same browser under the hood. The new serverinterface requires iOS 10.3.2 or newer. On Android, the server has beentested with Chrome version 58 and newer.

Browser makers have been trying to force people to use SSL by disablingadvanced features in their browsers for plain HTTP connections. One suchcasualty is offline support. So you may need to enable HTTPS on the server toget offline support working. In addition, in Firefox on Android, you will needto type about:config and search for browser.tabs.useCache and toggle itto true.

The calibre program has a nice section in Preferences to allow youto manage user accounts for the server. However, if you want to run thestandalone server and cannot run the main calibre program on the samecomputer/user account, you can also manage users using just the command-line.

You can manage user accounts using the --manage-users optionto the standalone calibre-server program. Suppose you want to storethe user database in the folder /srv/calibre, then you create itby running:

Just follow the prompts to create user accounts, set their permission, etc.Once you are done, you can run the server as:

It will use the user accounts you created in the previous step. Mirror: the lost shards for mac.

Here, we will show you how to integrate the calibre Content server into anotherserver. The most common reason for this is to make use of SSL or to serve thecalibre library as part of a larger site. The basic technique is to run thecalibre server and setup a reverse proxy to it from the main server.

A reverse proxy is when your normal server accepts incoming requests and passesthem onto the calibre server. It then reads the response from the calibreserver and forwards it to the client. This means that you can simply run thecalibre server as normal without trying to integrate it closely with your mainserver.

The simplest configuration is to dedicate a full virtual host to the calibreserver. In this case, run the calibre server as:

Calibre Raspberry Pi Docker

Now setup the virtual host in your main server, for example, for nginx:

Or, for Apache:

If you do not want to dedicate a full virtual host to calibre, you can have ituse a URL prefix. Start the calibre server as:

The key parameter here is --url-prefix/calibre. This causes the Content server to serve all URLs prefixed by /calibre. To see this in action, visit http://localhost:8080/calibre in your browser. You should see the normal Content server website, but now it will run under /calibre.

With nginx, the required configuration is:

For Apache, first enable the proxy modules in Apache, by adding the following to httpd.conf:

Calibre 5 Raspberry Pi

The exact technique for enabling the proxy modules will vary depending on your Apache installation. Once you have the proxy modules enabled, add the following rules to httpd.conf (or if you are using virtual hosts to the conf file for the virtual host in question):

That’s all, you will now be able to access the calibre Content server under the /calibre URL in your main server. The above rules pass all requests under /calibre to the calibre server running on port 8080 and thanks to the --url-prefix option above, the calibre server handles them transparently.

Note

When using a reverse proxy, you should tell the calibre Content server toonly listen on localhost, by using --listen-on127.0.0.1. That way,the server will only listen for connections coming from the same computer,i.e. from the reverse proxy.

Note

If you have setup SSL for your main server, you should tell the calibreserver to use basic authentication instead of digest authentication, as itis faster. To do so, pass the --auth-mode=basic option tocalibre-server.

You can easily create a service to run calibre at boot on a modern(systemd)based Linux system. Just create the file/etc/systemd/system/calibre-server.service with the contents shown below:

Change mylinuxuser and mylinuxgroup to whatever user and group you wantthe server to run as. This should be the same user and group that own the filesin the calibre library folder. Note that it is generally not a good idea torun the server as root. Also change the path to the calibre libraryfolder to suit your system. You can add multiple libraries if needed. Seethe help for the calibre-server command.

Now run:

to start the server. Check its status with:

To make it start at boot, run:

Note

The calibre server does not need a running X server, but it does needthe X libraries installed as some components it uses link against them.

Note

The calibre server also supports systemd socket activation, so you can usethat, if needed, as well.