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.

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.











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
- InstallDocker, Compose, or from source, the first account, and updates.
- Bring your books inFiles, free books, Audiobookshelf, Goodreads, and StoryGraph.
- ReadingThe reader, highlights, read aloud, search, OCR, and offline.
- Readers and lendingAccounts, children's accounts, loans, open shelves, linked shelves, and reminders.
- NotificationsPhone and browser notifications, ntfy, Gotify, and webhooks.
- Devices and appsKOReader, OPDS, and trading with another shelf.
- ConfigurationEvery setting, with its default.
Note
The screenshots show public-domain books, with covers drawn for the demo.