How to turn a Raspberry Pi into an eBook server

The Calibre eBook management software makes it easy to set up an eBook server on a Raspberry Pi 3, even in low-connectivity areas.
680 readers like this
680 readers like this
How to turn a Raspberry Pi into an eBook server

Recently Calibre 3.0 was released which enables users to read books in the browser! Note that Raspbian's repositories have not yet been updated yet (as of this writing).

eBooks are a great way for teachers, librarians, and others to share books, classroom materials, or other documents with students—provided you have ready and reliable access to broadband. But even if you have low or no connectivity, there's an easy solution: Create an eBook server with the open source Calibre eBook management software running on a Raspberry Pi 3. Here's how I did it—and you can, too.

First I downloaded the latest Raspbian Pixel image and installed it on a new 8GB microSD card. Then I inserted the microSD; connected a keyboard, mouse, and an old LCD TV with an HDMI cable; and booted the Pi. After adjusting the resolution of the Pixel environment on my monitor and connecting to the local network, I was ready to begin. I opened a terminal and entered sudo apt-get update to get the latest updates for the operating system.

Updating Raspbian Pixel

Next, I installed the Calibre software by entering sudo apt-get install calibre in a terminal.

Installing Calibre

I launched Calibre from the command line (note that it can be launched from the GUI also). The Calibre interface is very intuitive. The first time you launch, you see the Welcome to Calibre wizard. I changed the default Calibre Library to CalibreLibrary (one word), because it's easier when launching the content server.

After choosing the location for my Calibre content, I was ready to begin downloading books.

Calibre's interface

I selected the Get Books option from the menu, and it was very easy to enter my search terms and select the eBook provider I was interested in. I was looking for non-DRM material, so I chose Project Gutenberg as my source. (Calibre's disclaimer notes that eBook transactions are between you and the individual content providers.) I entered "Mark Twain" in the author field and got 10 results.

Searching for e-books

I selected Adventures of Huckleberry Finn. On the next screen, I could choose between the MOBI and EPUB eBook formats. I chose EPUB, and the book downloaded very quickly.

Choosing the e-book format

You can also add books to the library from other content providers, not in Calibre's list. For example, a teacher could share open educational resources in eBook format with students through this content server.  To load the content, use the "Add Books" menu option at the far left of the interface

Depending on the size of your library, you may also need to increase the size of your microSD card.


After you have added content to your eBook server, you are ready to share it with the rest of your network. Get the IP address of your Raspberry Pi by entering ifconfig into the terminal. I was using the wireless network, so I used the result for wlan0 in the example below. Navigate to the far right of the interface and expand the menu. Then, navigate to "Connect and Share" and start the server.

Identifying the IP address with ipconfig

My next step was connecting my client computer to the Raspberry Pi to access the eBooks I'd added. I opened a browser on my client device and navigated to the Raspberry Pi's IP address with the port :8080 appended. In my case, that was (adapt that format to your Pi's IP address).

You'll see this home page in your browser:

Calibre's client homepage

I tested and easily connected to the server with an iPhone and Linux and MacOS computers.

You can explore the options on this home page, or click on All Books to display all the content on your eBook server.

Browsing e-books

From here, you can download the books to your device and read them offline.

Have you ever set up an eBook server? Or are you thinking about setting up one yourself? Share your advice or questions in the comments.

Educator, entrepreneur, open source advocate, life long learner, Python teacher. M.A. in Educational Psychology, MSED in Educational Leadership, Linux system administrator, Follow me at @Don_Watkins .


Guess I'm going to have to get myself a Raspberry Pi now ...

Just for information's sake, this will work on basically any Linux server (that is, any Linux machine that you leave on all the time). Of course the Raspberry Pi will generally be the least investment and the most power efficiency for anyone who doesn't already have a Linux machine.

In reply to by Scott Nesbitt

Yes, you're right. It will work on other OS'es too. The small footprint and affordable price point make the Raspberry Pi variation very attractive. A regional library system in my home area is considering making units that are equipped like this to be lent out to patrons who lack sufficient access to broadband.

In reply to by CFWhitman

If you don't want to invest in learning Raspbery Pi programming, another option would be to get a small router and build a LibraryBox:

Yes, that's a great option. I have worked on one of them and have a librarian friend in an area library that uses one as a content server.

In reply to by Nate Hoffelder (not verified)

I'm a little late to the party but I wanted to throw in an additional comment. Kovid Goyal introduced the capability to run calibre as a headless server several years ago. How long ago I'm not sure but I found references to it clear back to 2012. For all I know the capability has always been there. :-)

Anyhow, it seems to me that it might make sense to install your favorite distro with no GUI on a Pi and use it as a standalone ebook server. Throw on an external hard drive on a USB port and you've got quite a capable little server with plenty of storage.

Speaking of which, one of the things that I really love about calibre is using it to pull down newspapers and magazines. At this point there are over 1600 periodicals in what looks like a couple of dozen languages available. Personally, I've got 31 that I pull down on a daily or monthly basis. A personal pet project that's been on the back burner for quite a while is figuring out if I can use a bunch of Pis as calibre servers to do the work of pulling down and converting them to EPUB format from XHTML and HTML. I need to find the time to start playing around with that. :-)

Thanks for sharing all of that. I didn't know about the ability to download magazines. I was aware of running it as a headless server and also in an access point mode using "hostapd."

In reply to by sgtrock

Does this install Calibre 3? When I check the version to be installed it looks like it's going to install calibre 2.5 for me under Raspbian Jessie. Is there some way for me to get Calibre 3?

Not at this time. We're still waiting for Raspian's repositories to be updated with the latest Calibre 3.1 software.

In reply to by David Thomas (not verified)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.