shelf docs
GitHub

A personal library you run yourself

Every book you own, read, and lend, in one quiet place.

Shelf keeps your catalog, your e-books and audiobooks, where you stopped, what you highlighted, and who has which book. It runs on your own computer or server, for you and the people you share it with.

Home: the book last read with a button back into it, the shelf at a glance, and the other open books

What it does

  • A real catalogSeries, translators, editions, where each copy sits, its condition, who recommended it, ratings, reviews, and tags. Fill it from an ISBN, or scan the barcode. Saved searches, and reading lists shared by link.
  • Read in the browserEPUBs, PDFs, and comics, at your text size, back where you stopped, with highlights, notes, and read aloud. Scanned PDFs are read with OCR.
  • Listen to audiobooksOne file or a folder of tracks, with chapters, bookmarks, a speed of your own, a sleep timer, and lock-screen controls. Details and chapter names from Audible, and podcasts in the same player.
  • Switch formats, or read alongOwn the audiobook and the e-book? Carry on in one where you stopped in the other, or listen while each word is marked as it's read.
  • Lend to each otherEvery reader has a shelf of their own, children too. Lend a book and the borrower reads or listens with their own place and notes; link a friend's Shelf to borrow across.
  • Bring a library inDrop in a folder of files, import from Audiobookshelf, Goodreads, or StoryGraph, or add free public-domain books.
  • Keep in step with devicesA Kobo syncs as with its own store; KOReader downloads from Shelf's catalog and syncs its place and reading time back. Notifications on your phone, and webhooks for Home Assistant.
  • Know your readingGoals for books, pages, and hours, a review of each year, a calendar of reading days, a streak, every quote in one place, a note when a series you read has a new book, and what to read next.
  • Yours, and privateYour data stays on your server. Sign-in by email or passkey, two-step sign-in, single sign-on, Turnstile on public forms, an activity log, nightly backups, and API tokens for scripts and Home Assistant.
  • Share it with manyInvite people by email, choose who may sign up, and look after every reader from Shelf admin: rename, sign out, suspend, or announce something to everyone.
  • In four languagesEnglish, Spanish, French, and German, chosen by each reader, with dates written the way their region writes them.

Every feature, with pictures

Why Shelf

Calibre-Web is a fine front end to a Calibre library of e-books, and Audiobookshelf a fine audiobook and podcast server with phone apps. Each is built around one kind of book. Shelf is for a library of all of them at once: a paperback, its EPUB, and its audiobook are one book with one reading log, paper copies have places, conditions, and loans, and readers on the same server lend to each other. It brings in Calibre libraries and Audiobookshelf servers, so trying it costs nothing. It has no phone apps of its own: on a phone it is the website, with offline reading for kept books; for listening, Audiobookshelf's apps sign in to Shelf as to their own server.

Start in a minute

With Docker installed, this runs the latest release and keeps everything in one volume:

docker run -d --name shelf -p 8080:8080 -v shelf-data:/data \
  --restart unless-stopped ghcr.io/doodersrage/shelf:latest

Open http://localhost:8080 and make the first account; it becomes the admin. Install covers Docker Compose, running from source, and putting Shelf on the internet safely.

Find your way

Note

The screenshots show public-domain books, with covers drawn for the demo.