• 2026.09.25
    Build, Scan & Publish Image / build-scan-push (release) Successful in 12m9s
    Stable

    mdaleo404 released this 2026-09-25 14:45:04 +00:00 | 3 commits to main since this release

    Disclaimer

    This project was initially created for personal use, but I think more people could benefit from it either by using it as is or by forking it and create their own one.

    Meet kovi

    kovi is a local-first, self-hosted reading dashboard for KOReader. It turns your KOReader statistics database and device
    syncs into a cover-first library, reading-time charts, a month calendar, and real highlights/notes — all in a single Node
    process with one SQLite file and no external services.

    Highlights:

    • Drag-and-drop import of statistics.sqlite3, with defensive validation and transactional, idempotent writes.
    • LAN pairing via one-use codes and revocable per-device tokens; incremental sync with a one-day overlap and changed-
      sidecar-only annotation updates.
    • Automatic cover enrichment — embedded KOReader covers, ISBN/Open Library/Google Books lookup, and a Calibre-backed
      fallback in the container — with retry actions and cover history.
    • A responsive light/dark dashboard: sortable library with read filters, filterable reading-rhythm heatmap, interactive
      daily reading-time graph, month calendar, and Status/backup/export pages.
    • Docker-first deployment (non-root, bundled Calibre) or npm start on Node.js 22+.

    The web UI intentionally ships without user accounts; keep it on a trusted network or behind an authenticated reverse proxy.
    Device endpoints use separate revocable tokens. See SECURITY.md.

    Downloads