Skip to content
Tech News
← Back to articles

Bookshelf – Self-hosted eBook library that runs on object storage

read original more articles
Why This Matters

Bookshelf introduces a self-hosted eBook library solution that allows users to organize, browse, and read their digital books directly from their own servers or cloud storage. By supporting EPUB and PDF formats with in-browser reading capabilities, it offers a privacy-focused alternative to commercial eBook services, empowering consumers and developers to manage their collections independently. Its flexible deployment options, including Docker and direct server setups, make it accessible for various technical environments, marking a significant step toward customizable digital library management in the tech industry.

Key Takeaways

Bookshelf

A self-hosted library for the ebooks you already own. One server-rendered page lists them, filters them with a search box, serves downloads, and reads them in the browser — EPUB and PDF, each with its own reader — as a Cloudflare Worker over R2, or as a Node server over a directory on disk.

Everything above is npm run demo — a generated shelf of public-domain titles, so the screenshots can be reproduced without finding books first.

Getting started

Node 24 or newer, and a Unix-like system: the sync tool finds its image tools with which , so Windows is not supported. Covers come out better with cwebp and pdftoppm installed — see publishing, or use Docker, which ships both.

git clone https://github.com/murerkinn/bookshelf.git cd bookshelf npm install

Put some books — EPUB or PDF — in books/ , then choose where the library should live.

With Docker

The shortest path, and the image brings its own cwebp and pdftoppm so covers come out right without installing anything on the host.

mkdir books && cp ~ /Downloads/ * .epub books/ docker compose run --rm sync --create docker compose up -d

... continue reading