Self-hosted Library Management with KOReader sync, deployed for free on Render + Turso + Backblaze B2.
Sake is not made by me — all credits go to Sudashiii.
This tutorial is detailed and well-formatted, but I may have missed something — if so, just comment below.
If you have any problems also comment bellow.
To see more about Sake, check out the official repository or my Reddit post.
All of these accounts don't require a credit card.
- GitHub account
- Turso account (free)
- Backblaze account (free)
- Render account (free)
-
Go to turso.tech → "Start for free" → sign in with GitHub
-
Click "Create Database"
-
Click on your new database → "Connect" → "Generate Token"
-
Save these two values:
LIBSQL_URL = libsql://sake-db-YOURNAME.turso.io
LIBSQL_AUTH_TOKEN = eyJ...
- Go to backblaze.com → "Sign Up for Free" (no credit card needed)
- In the dashboard → "Buckets" → "Create a Bucket"
- Note your endpoint URL shown on the bucket page, e.g.:
- Go to "App Keys" → "Add a New Application Key"
- Save the 3 values immediately (shown only once!):
- Go to render.com → "Get Started for Free" → sign in with GitHub
- "New +" → "Web Service"
- Go to public repo and paste this link: https://github.com/ThePixelPro366/Sake/
- Configure the service:
Region: Closest Place To your Region Branch: master Root Dir: sake Runtime: Docker - Scroll down to "Environment Variables" and add all of these:
| Key | Value |
|---|---|
| LIBSQL_URL | libsql://sake-db-YOURNAME.turso.io |
| LIBSQL_AUTH_TOKEN | your Turso token(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX...) |
| S3_ENDPOINT | Your endpoint url(fpund in the bucket overview |
| S3_REGION | your region |
| S3_BUCKET | sake-storage |
| S3_ACCESS_KEY_ID | your Backblaze Key ID(0065d4f1a2b....) |
| S3_SECRET_ACCESS_KEY | your Backblaze Secret Key(Kp8fG7hJ6l9qR3sT2uV0wXyZ1a....) |
| S3_FORCE_PATH_STYLE | true |
| ACTIVATED_PROVIDERS | openlibrary,gutenberg,zlib |
| PORT | 10000 |
-
Click "Create Web Service"
-
Wait 3–5 minutes for the build process to complete.
-
Once you see "Live" at the top, your app is running at
https://sake-YOURNAME.onrender.com
- Open your Sake URL in the browser
- You should see a register screen - register
- This is your account — keep these credentials safe
- Copy the
sake.kopluginfolder from your fork into KOReader's plugins directory - In KOReader: Settings → More Tools → Sake
- Set your Sake URL (e.g.
https://sake-YOURNAME.onrender.com) - Enter your username and password
- Press "Login and fetch device key"
- Press "Sync books" to download your library
The repo you cloned is my fork and I will try my best to Update everything as soon as possible
Render's free tier pauses the app after 15 minutes of inactivity. The first request after a pause takes ~30 seconds to wake up. This is normal and does not trigger a redeploy.
| Service | Free Limit |
|---|---|
| Render | 750 hours/month |
| Turso | 5 GB, 500M row reads/month |
| Backblaze B2 | 10 GB storage |