Skip to content

πŸ“š KoInsight brings your KoReader reading stats to life with a clean, web-based dashboard.

License

Notifications You must be signed in to change notification settings

GeorgeSG/KoInsight

Repository files navigation

KoInsight brings your KOReader reading stats to life with a clean, web-based dashboard.

⚠️ WARNING! KoInsight is not currently suited for multi-device sync. If you sync data from multiple devices, statistics will most likely be wrong. I am working on a next version that will have full support for multiple devices.

Features

  • πŸ“ˆ Interactive dashboard with charts and insights
  • πŸ”„ KOReader plugin for syncing reading stats
  • πŸ“€ Manual .sqlite upload supported
  • ♻️ Act as a KOReader (kosync) sync server
  • 🏠 Fully self-hostable (Docker image available)

Screenshots

Home page Book view
Statistics Statistics

See all screenshots

Installation

Using Docker and Docker Compose

Add the following to your compose.yaml file:

name: koinsight
services:
  koinsight:
    image: ghcr.io/georgesg/koinsight:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data

Run docker compose up -d.

Usage

Reading statistics

To start seeing data in KoInsight, you need to upload your reading statistics. Currently, there are two ways to do this:

  1. Manual upload: Extract your statistics.sqlite file from KOReader and upload it using the "Upload Statistics DB" button in KoInsight.
  2. Sync plugin: Install and configure the KoInsight plugin in KOReader to sync your data directly.

KOReader sync plugin

The KoInsight plugin syncs your reading statistics from KOReader to KoInsight.

Installation:

  1. Download the plugin ZIP bundle from the "KOReader Plugin" button in the main menu.
  2. Extract it into your KOReader/plugins/ folder.
  3. For the plugin to be installed correctly, the file structure should look like this:
    koreader
    └── plugins
        └── koinsight.koplugin
            β”œβ”€β”€ _meta.lua
            β”œβ”€β”€ main.lua
            └── ...
    

Usage:

  1. Open the KOReader app.
  2. Go to the Tools menu and open KoInsight (it should be below "More tools").
  3. Click Configure KoInsight and enter your KoInsight server URL (e.g., http://server-ip:3000).
    • ⚠️ Make sure your KOReader device has network access to the server.
  4. Click Sync in the KoInsight plugin menu.

Reload the KoInsight web dashboard. If everything went well (🀞), your data should appear.

Manual Upload: statistics.sqlite

  1. Open a file manager on your KOReader device.
  2. Navigate to the KOReader/settings/ folder.
  3. Locate the statistics.sqlite file.
  4. Copy it to your computer.
  5. Upload it to KoInsight using the "Upload Statistics DB" button.
  6. Reload the KoInsight web dashboard.

Every time you need to reupload data, you would need to upload the statistics database file again.

Use as progress sync server

You can use your KoInsight instance as a KOReader sync server. This allows you to sync your reading progress across multiple devices.

  1. Open the KOReader app.
  2. Go to the Tools menu and open Progress sync
  3. Set the server URL to your KoInsight instance (e.g., http://server-ip:3000).
  4. Register an account and login.
  5. Sync your progress.

The progress sync data should appear in the "Progress syncs" page in KoInsight.

Roadmap

(a.k.a things I want to do)

  1. Books
    1. Mark as read
    2. Mark as unread
    3. Edit / add details manually
    4. Manual cover upload
    5. Automatically fetch book cover on new book upload
  2. Authors
    1. Author view - show books per author.
  3. Statistics
    1. Map KOReader page count to actual page count for better per-page statistics.
  4. More KOReader data
    1. Import covers from KOReader
    2. Try to import highlights and bookmarks from KOReader
  5. AI Enhancements
    1. Get book information - description, similar books
    2. Tag / Categorize books based on genres
    3. Book recommendations?
  6. Administration
    1. Multi-user support (besides progress syncs)
  7. Progress sync
    1. Delete progress syncs
    2. Edit progress syncs
    3. Device management