koreader-sync icon indicating copy to clipboard operation
koreader-sync copied to clipboard

Simple implementation of the KOReader position sync server for self-hosting at home which has docker support for arm and amd64 :)

Koreader position sync server

Description

This is a simple implementation of the KOReader (https://github.com/koreader/koreader) position sync server for self-hosting at home which has docker support for arm and amd64 :) This is a fork of https://github.com/myelsukov/koreader-sync but with a complete code rewrite.

Dependencies

  • FastAPI : https://github.com/tiangolo/fastapi
  • TinyDB: https://github.com/msiemens/tinydb
  • Uvicorn: https://www.uvicorn.org/
  • Python-dotenv: https://saurabh-kumar.com/python-dotenv/

Install and run

> pip install -r requirements.txt

> uvicorn kosync:app --host 0.0.0.0 --port 8081

Or via Docker

> docker build --rm=true --tag=kosync:latest .

> docker-compose up -d

Environment Variables

  • RECEIVE_RANDOM_DEVICE_ID ("True"|"False")

Set it true to retrieve always a random device id to force a progress sync. This is usefull if you only sync your progress from one device and usually delete the *.sdr files with some cleaning tools.

Dockerhub

There is also a dockerhub image available if you are not able to build yourself the image.

For linux/amd64 you can use docker pull b1n4ryj4n/koreader-sync and for linux/arm docker pull b1n4ryj4n/koreader-sync:arm

Connection

  • Use http://IP:8081 as custom sync server
  • Recommendation: Setup a reverse proxy for example with Nginx Proxy Manager (https://nginxproxymanager.com/) to connect with https

Changelog

[0.0.4] - 2023-10-29

Added

  • Added the HEALTHCHECK command (also accessible via http://IP:8081/healthstatus)

[0.0.3] - 2022-03-20

Added

  • Added an environment variable option to receive always a random device id

[0.0.2] - 2022-02-21

Added

[0.0.1] - 2021-09-15

Added

  • First version