Personal e-Book Library
I’ve been acquiring ebooks for several years, and use Calibre to manage file metadata. It works great, and has for a long time. A few years ago I migrated from Calibre running on my laptop to Calibe-Web running on the server.
Calibe-Web
Some time ago there was a fork of calibre’s internal web frontend to a standalone server, which was then forked to calibre-web. It’s very much like Plex for eBooks, and mostly “just works”.
Installation in SmartOS Zone
Installation is really quite simple, if you’re running Linux. If you’re not, it can be a bit more involved. If you’re running on limited hardware resources, it’s a bit more complicated.
I’m on Illumos, with a small VM/Zone. Consequently, it’s a bit more involved that the upstream directions. My process is as follows:
- Create a dedicated zone, with passthrough for the library
- Library lives outside the zone, so quota can be small
- image_uuid should be current-ish
- I was using 256mb RAM. 512 is better
- json definition attached.
- Install python, pip via pkgsrc
- pkgin in py312-pip
- Install python support libraries via pkgsrc
- pkgin in py312-lxml
- pkgin in py312-cryptography-41.0.5
- pkgin in py312-netifaces-0.11.0nb1
- Install calibreweb via pip
- pip3 install calibreweb
- Install SMF manifest (sample attached)
- svccfg import cps-library.xml
- Initial configuration (only for very first install)
- Create user(s)
- Import book files
- etc.
Reverse Proxy
Calibre-Web is, surprisingly, a web application. To access it, I have an nginx reverse proxy configured to a) provide TLS termination and b) share multiple services via a single IP via location forwarding.
Upgrading
Upgrading can sometimes be done automatically be the internal update mechanism (It’s under the “admin” menu). If that fails, delete the VM/Zone and recreate it as per the install guide. The app configuration will carry forward from the library passthrough, so the final config step from the installation will be unneccesary.