KOReader Sync Server

A lightweight synchronization server for KOReader devices, built with Bun and Hono.

📦 View source code on GitHub

KOReader Sync Server

Getting Started

To use this sync server with your KOReader device:

  1. Open a document on your KOReader device and navigate to Settings → Progress Sync → Custom sync server. Enter this server's URL.
  2. Select "Register / Login" to create an account or sign in with your credentials.
  3. Test the connection by selecting "Push progress from this device now". You'll receive a confirmation message.
  4. Enable automatic progress syncing in the settings if desired.

Self-Hosting Guide

Set up your own sync server easily using Docker Compose:

services:
  kosync:
    image: ghcr.io/nperez0111/koreader-sync:latest
    container_name: kosync
    ports:
      - 3000:3000
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/health"]
      interval: 5m
      timeout: 3s
    restart: unless-stopped
    volumes:
      - data:/app/data
  1. Create a new directory for your sync server
  2. Save the above configuration as docker-compose.yml
  3. Run docker compose up -d to start the server
  4. Your server will be available at http://localhost:3000
  5. The SQLite database will be automatically persisted in a Docker volume at /app/data

Note: This server allows registration by any username and password. It does not require any authentication to access the sync server.