Skip to content

Gjessing1/EPUB-BookPrep

Repository files navigation

EPUB BookPrep

EPUB BookPrep is a selfhosted, privacy-first, stateless web tool for preparing clean, standards-compliant EPUB metadata. Upload a file, make precise edits, and download a corrected EPUB, no accounts, no background processing, and no files stored on the server.

  • Simple install with Docker image available.
  • No configuration necessary

The project is inspired by BentoPDF in both philosophy and workflow.

Latest release GitHub stars

Live demo (temporary)

A public demo is available for testing and evaluation:

👉 Try the demo

The demo is intended for light, manual testing only.
Uploaded files are processed in memory and are not stored, but availability and uptime are not guaranteed.
For regular use, self-hosting via Docker is recommended.

Features

  • Inspect and edit common EPUB metadata fields
    (title, author, language, publisher, series, identifiers, description)
  • Fetch metadata from public sources using ISBN or title-based search
  • Review and selectively apply fetched metadata to avoid incorrect matches
  • Search for available cover images, preview alternatives, and explicitly choose whether to replace or keep the existing cover
  • Clean and normalize metadata:
    • trim whitespace
    • normalize date formats
    • strip HTML from descriptions
    • deduplicate subjects
  • Preview how metadata will appear in OPDS-based clients before importing into a library or reader
  • EPUB 3 editor with EPUB 2 backward compatability
  • Extremely lightweight: the Docker container uses under 30 MB of host memory, as all processing happens in the browser.
  • Light and dark mode support

Screenshots (Mobile view)

Mobile view Mobile view Mobile view Mobile view Mobile view

Key principles

  • Uploaded files are processed entirely in memory and are never stored on disk. Once a request completes, no files or metadata remain on the server.
  • The app only modifies EPUB metadata (OPF and related fields). Book content, structure, and reading experience are left untouched.
  • The tool avoids deep EPUB “repair” or content manipulation to ensure results are easy to understand and trust.
  • Only EPUB files are supported. Other ebook formats are intentionally out of scope.
  • The application runs out of the box with no required configuration or environment variables.

What this tool is not

Not an ebook library manager Not a reader application Not a full EPUB editor or authoring tool Not a replacement for Calibre or Sigil

Typical use case

Upload an EPUB file

  • Inspect and adjust metadata (title, author, language, series, cover, etc.)
  • Optionally enrich metadata from public sources
  • Download a cleaned EPUB
  • Import the result into your library or reader of choice

Deployment

The application is distributed as a Docker container and can be run either behind a reverse proxy or directly via a mapped port. No volumes are required, as uploaded files are processed entirely in memory and never persisted.

  • Download the example compose file: docker-compose.yml
  • Start the service from the same directory:
    docker compose up -d
  • The application listens on port 3007 by default.
  • Access it via http://localhost:3007, or expose it through a reverse proxy such as Caddy, Traefik, or Nginx

Planned Features (Roadmap)

  • Show EPUB version (2 or 3) of the file being edited.
  • Add a loading indicator for large uploads (>30MB).

Like the project?

Please consider buying me a coffe, i really do drink it alot!