Repolode
BookHeaven

BookHeaven/BookHeaven.Server

Self-hosted web server for managing your ebook library, with OPDS, KOReader Sync and an API for the BookHeaven Reader Android app.

Open-source alternative to:Calibre Web

Stars
201
Forks
4
Open issues
2
Last commit
2 days ago

What is it?

BookHeaven Server is a web application for organizing and reading an ebook library on your own machine. It groups books by author, series and collection, supports tags, and reads metadata directly from each ebook file. Edits to titles, authors or covers are written back into the file, and covers and metadata can also be fetched from the internet.

The server tracks reading progress per profile, recording start date, last read date, percentage, elapsed time and finish date, and progress can be set manually. Profiles keep separate reading histories for different users. Custom fonts can be uploaded and made available for devices to download.

For clients, the server exposes an OPDS feed at /opds/v1, works as a sync target for KOReader, and provides a custom API used by the BookHeaven Reader Android app, which can discover the server automatically on the local network. It is deployed with Docker or Podman, using a volume for data and an optional import folder.

Key features

  • 01Organize books by author, series, collection and tags
  • 02Edit metadata and covers, with changes saved back into the ebook file
  • 03Fetch covers and metadata from the internet
  • 04Track reading progress per profile, with manual adjustment
  • 05OPDS feed at /opds/v1 and KOReader Sync support
  • 06Automatic server discovery for the BookHeaven Reader Android app

Use cases

  • Hosting a personal ebook library on a home server and reading it across devices
  • Serving an OPDS catalog to e-reader apps that support it
  • Syncing reading progress between KOReader and a central server
  • Managing custom fonts for devices that read your books

Quick start

  1. 1

    Pull the container image from GitHub Container Registry

    docker pull ghcr.io/bookheaven/bookheaven-server:latest
  2. 2

    Start the server with Docker run, mapping the web UI port and data folder

    docker run -d --name bookheaven --user 1000:1000 -p 8080:8080 -p 27007:27007/udp -v $PWD/data:/app/data -v $PWD/import:/app/import -e SERVER_URL=https://bookheaven.yourdomain.tld ghcr.io/bookheaven/bookheaven-server:latest
  3. 3

    Open the web UI in your browser on port 8080

Things to know

  • Not recommended to store the data folder on a network share because it uses SQLite.

In collections

Topics

#ebook#self-hosted#ebook-library#opds#docker#koreader#bookheaven#books

FAQ

What is BookHeaven.Server?
Self-hosted web server for managing your ebook library, with OPDS, KOReader Sync and an API for the BookHeaven Reader Android app. BookHeaven Server is a web application for organizing and reading an ebook library on your own machine. It groups books by author, series and collection, supports tags, and reads metadata directly from each ebook file. Edits to titles, authors or covers are written back into the file, and covers and metadata can also be fetched from the internet.
Is BookHeaven.Server free to use? What license does it have?
BookHeaven.Server is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
Is BookHeaven.Server still maintained?
Actively maintained. The last commit to BookHeaven.Server was on Nov 5, 2026.
What can I use BookHeaven.Server for?
Hosting a personal ebook library on a home server and reading it across devices Serving an OPDS catalog to e-reader apps that support it Syncing reading progress between KOReader and a central server Managing custom fonts for devices that read your books
How do I install BookHeaven.Server?
Pull the container image from GitHub Container Registry: docker pull ghcr.io/bookheaven/bookheaven-server:latest Start the server with Docker run, mapping the web UI port and data folder: docker run -d --name bookheaven --user 1000:1000 -p 8080:8080 -p 27007:27007/udp -v $PWD/data:/app/data -v $PWD/import:/app/import -e SERVER_URL=https://bookheaven.yourdomain.tld ghcr.io/bookheaven/bookheaven-server:latest Open the web UI in your browser on port 8080
Where can I get BookHeaven.Server?
The source code and installation instructions are on GitHub: https://github.com/BookHeaven/BookHeaven.Server

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects