Sudashiii

Sake: Self-Host an Ebook Library with KOReader Sync

Sake is a self-hosted ebook library built with SvelteKit, Svelte 5, and Bun, with a KOReader plugin for syncing reading progress and notes. It combines a web library with device sync, book imports, OPDS, and WebDAV.

ActiveTypeScriptAGPL-3.0Self HostedWeb AppEbook Library
Stars
106
Forks
8
Last commit
15 days ago
Contributors
3
Releases, 12 months
2

Our take

Activerecent releases

Health score

45/100

How it is scored
Activity
47
Community
15
Issues
53
Pull requests
63
  • Fewer contributors than 82% of the projects we track

Sake is an actively maintained, integrated option for KOReader-centered self-hosting, but its small and highly concentrated contributor base makes long-term continuity a consideration.

Good fit if

  • You use KOReader and want its progress, notes, and book delivery connected to a web library.
  • You can operate a service backed by libSQL and S3-compatible storage, either through the provided Compose examples or managed services.
  • You want OPDS or WebDAV access and are comfortable with an AGPL-3.0-licensed application.

Look elsewhere if

  • You need a library designed around a different reading-device ecosystem rather than KOReader.
  • You cannot provide a database and S3-compatible object storage for deployment.
  • You require a project with development spread across a broader contributor base.
All health signals
Last commit2026-10-10 (15 days ago)
Commits, last 90 days6
Releases, last 12 months2 (latest webapp/v2026.07.10.1, 2026-07-10)
Contributors3 (top contributor: 98% of commits)
Issues closed, last 90 days2
Pull requests merged, last 90 days6 (typically merged in 0 days)
Project age8 months

Checked on 2026-10-25 with the GitHub API.

Overview

Sake is a self-hosted ebook library built as a SvelteKit app using Svelte 5 and Bun, alongside a KOReader plugin. It gives KOReader users a web-based home for their collection and syncs reading progress, notes, and other sidecar data between the server and paired devices.

The project also supports book imports through configurable search providers, device delivery, OPDS, and WebDAV. It is aimed at readers who want to manage their library and reading workflow on infrastructure they control, rather than using a standalone catalog or relying only on device-local files.

Key Features

  • Manage books with covers, metadata, shelves, ratings, and reading state.
  • Sync KOReader reading progress and notes across paired devices.
  • Import existing device libraries, including associated progress and notes.
  • Download books from enabled provider-based search sources.
  • Browse highlights and annotations, edit notes, and export them as Markdown or JSON.
  • Organize collections with rule-based shelves and view reading statistics.
  • Serve the library through OPDS and WebDAV, with HTTP Basic authentication.
  • Update the KOReader plugin through the app's release delivery and updater flow.

Use Cases

  • KOReader users who want progress and notes to follow them across multiple devices.
  • Readers who want a self-hosted web catalog alongside their e-reader library.
  • People moving an existing KOReader collection to a server while retaining sidecar reading data.
  • Self-hosters who want to expose a personal collection to compatible OPDS or WebDAV clients.

What you need

Detected in the repository

  • TypeScript (main language on GitHub)
  • A Compose file to run it with its related services
  • Automated checks on GitHub Actions

License in plain words

AGPL-3.0network copyleft

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the license notice
  • Share your changes: yes, the full source, also when people only use it over a network (e.g. as a hosted service)
  • Includes an explicit patent grant from the contributors:

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

For the self-hosted Compose setup using the published image, run this from the repository root:

docker compose -f docker-examples/docker-compose.prebuilt.selfhost.yaml up

Then open http://localhost:5173. See the README for configuration and other deployment options.

Considerations

  • The app needs libSQL and S3-compatible storage. The self-hosted Compose example includes a file-backed database and SeaweedFS; other setups can use external services.
  • The repository is active, with recent commits, releases, and merged pull requests, but most contributions come from one person. That concentration is a project continuity risk.
  • Search and metadata lookup are optional and remain disabled unless providers are configured. Z-Library additionally requires a connected session.
  • The project is licensed under AGPL-3.0. Review its terms if you plan to modify or provide the software as a network service.

Found this useful?

Share it with someone who would like Sake.