A self-hosted web application for book lovers who want to track their reading, organize their digital library, and discover patterns in their reading habits.
Add books manually or import from Goodreads, Audible, or CSV. Organize with tags, genres, and Smart Collections.
Read EPUB, PDF, and comics directly in your browser with themes, bookmarks, and automatic progress tracking.
Set reading goals, view your reading heatmap, and watch your streaks grow with detailed statistics.
Automatically pull book details from 6 providers including Google Books, Open Library, and Goodreads.
Get personalized book recommendations powered by AI, plus similar book suggestions based on your library.
Responsive design with dark mode, quick actions, and a beautiful collapsible sidebar for focused reading.
Access your library from e-reader apps like Calibre, KOReader, and Moon+ Reader via OPDS support.
Admin and member roles with personal libraries, shared collections, and public widgets for your blog.
Get BookShelf running in minutes
# 1. Create a directory for BookShelf
mkdir bookshelf && cd bookshelf
# 2. Download the compose file
curl -O https://raw.githubusercontent.com/iamernie/BookShelf/main/docker-compose.yml
# 3. Create your .env file
cat > .env << EOF
SESSION_SECRET=$(openssl rand -hex 32)
ORIGIN=http://localhost:3000
PUID=$(id -u)
PGID=$(id -g)
EOF
# 4. Start it up!
docker compose up -d
Open http://localhost:3000 and the setup wizard will guide you through creating your account.
Svelte 5 with runes
Modern styling
with Drizzle ORM
Easy deployment
Get started with BookShelf today and take control of your reading journey.
Get Started Now