koshelf

koshelf

Docker app from JPDVM2014's Repository

Overview

Unofficial Docker image for KoShelf. All your KOReader notes & highlights combined into a beautiful reading dashboard with statistics. KoShelf - All your KOReader notes & highlights combined into a beautiful reading dashboard with statistics.

KoShelf

Stars Latest Release License

Statistics dashboard

A reading companion powered by KOReader metadata β€” browse your library, highlights, annotations, and reading statistics from a web dashboard.

Features

  • πŸ“š Library Overview (Books + Comics): Displays your currently reading, completed, and unread items (ebooks + comics)
  • 🎨 Modern UI: Clean design powered by Tailwind CSS with readable typography and responsive layout
  • πŸ“– In-App Reader (EPUB/FB2/MOBI/CBZ): Open supported files directly in KoShelf with keyboard navigation, progress scrubber controls, and inline highlight notes
  • πŸ“ Annotations, Highlights & Ratings: All your KoReader highlights, notes, star ratings, and review notes (summary note) are shown together on each book's details page
  • ✏️ Metadata Writeback: Edit annotations, review notes, ratings, and reading status directly in KoShelf and sync changes back to your KOReader sidecar files (serve mode, opt-in)
  • πŸ“Š Reading Statistics: Track your reading habits with detailed statistics including reading time, pages read, customizable activity heatmaps, and weekly breakdowns
  • πŸ“… Reading Calendar: Monthly calendar view showing your reading activity with items read on each day and monthly statistics
  • πŸŽ‰ Yearly Recap: Celebrate your reading year with a timeline of completions, monthly summaries (finished items, hours read), and rich per-item details
  • πŸ“ˆ Per-Item Statistics: Detailed statistics for each item including session count, average session duration, reading speed, last read date, and a page-level reading activity heatmap
  • πŸ” Search & Filter: Search through your library by title, author, or series, with filters for reading status
  • ⬇️ Original File Downloads: Download original item files from item detail pages, including static exports when --include-files is enabled
  • πŸ” Optional Authentication: Password-protect server mode with session-based auth, login rate limiting, password rotation, and session management
  • πŸš€ Static Site: Generates a complete static website you can host anywhere
  • πŸ–₯️ Server Mode: Built-in web server with live file watching for use with reverse proxy
  • πŸ“± Responsive: Optimized for desktop, tablet, and mobile with adaptive grid layouts

Screenshots

Library overview Book details Reading calendar Recap

Quick Start

Install

Home Assistant β€” One-click install

Open your Home Assistant instance and show the dashboard of an add-on.

Docker Compose β€” Community-maintained image via koshelf-docker. See the Installation Guide for a sample docker-compose.yml.

Prebuilt binaries β€” Download from the releases page (Windows x64, macOS, Linux x64/ARM64).

For detailed installation instructions (building from source, first-time CLI guide, Windows Defender notes), see the Installation Guide.

Usage

# Start a web server (live file watching, requires --data-path)
koshelf serve -i ~/Library --data-path ~/koshelf-data

# Generate a static site
koshelf export ~/my-reading-site -i ~/Library

# Generate a static site with downloadable original files
koshelf export ~/my-reading-site -i ~/Library --include-files

For all subcommands, options, environment variables, and examples, see the Configuration Guide.

Documentation

Guide Description
Installation Home Assistant, Docker, prebuilt binaries, building from source
Configuration Subcommands, CLI options, environment variables, config file, examples
KoReader Setup Metadata storage options (sdr/hashdocsettings/docsettings), deployment setup
Authentication Password authentication for serve mode
Supported Data Supported formats and extracted metadata fields
Stable Page Metadata KOReader stable page metadata & synthetic page scaling
Static Export Generated site directory structure
API Reference REST API endpoints, parameters, and response schemas
Syncthing Setups Community-contributed device sync guides

Credits

Design and feature inspiration comes from KoInsight, an excellent alternative that focuses on reading statistics and can also act as a KOReader sync server.

The calendar view is powered by EventCalendar, a lightweight JavaScript event calendar library.

Disclaimer

This was built for personal use and relies heavily on AI-generated code. While I've tested everything and use it daily, I take no responsibility for any issues you might encounter. Use at your own risk.

Install Koshelf on Unraid in a few clicks.

Find Koshelf in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Koshelf Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/devtigro/koshelf:latest
Last Updated2026-07-17
First Seen2026-03-23

Runtime arguments

Web UI
http://[IP]:[PORT:3000]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--user 1000:1000

Template configuration

AppdataPathrw
Target
/data
Default
/mnt/user/appdata/koshelf
Value
/mnt/user/appdata/koshelf
WebUIPorttcp
Target
3000
Default
3000
Value
3000
KOReader Books FolderPathro

Must be a books folder created by KOreader. Not your regular book library.

Target
/books
KOReader Settings FolderPathro

Folder that contains your KOReader settings

Target
/settings