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.
- 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/
> pip install -r requirements.txt
> uvicorn kosync:app --host 0.0.0.0 --port 8081
> docker build --rm=true --tag=kosync:latest .
> docker compose up -d
- 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.
- OPEN_REGISTRATIONS ("True"|"False")
Enable/disable new registrations to the server. Useful if you want to run a private server for a few users, although it doesn't necessarily improve security by itself. Set to True (enabled) by default.
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
- 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
- Added the HEALTHCHECK command (also accessible via http://IP:8081/healthstatus)
- Added an environment variable option to receive always a random device id
- First version