Get your audiobooks and ebooks syncing in 10 minutes!
- Log into your ABS server
- Go to Settings → Users → Your user
- Click "Generate API Token"
- Copy the token (starts with
eyJ...)
- In ABS, go to your audiobook library
- Look at the URL:
https://your-server.com/library/LIBRARY_ID_HERE - Copy that ID
- Your Calibre/KOSync username and password
- KOSync server URL (usually
https://your-calibre.com/api/koreader)
Create a directory for the app:
mkdir ~/abs-kosync
cd ~/abs-kosyncCopy this template and fill in YOUR values:
services:
abs-kosync-enhanced:
image: your-username/abs-kosync-enhanced:latest
container_name: abs-kosync
restart: unless-stopped
environment:
# REQUIRED - Fill these in!
- ABS_SERVER=https://YOUR_ABS_SERVER.com
- ABS_KEY=YOUR_API_TOKEN_HERE
- ABS_LIBRARY_ID=YOUR_LIBRARY_ID
- KOSYNC_SERVER=https://YOUR_CALIBRE_SERVER.com/api/koreader
- KOSYNC_USER=YOUR_USERNAME
- KOSYNC_KEY=YOUR_PASSWORD
- KOSYNC_HASH_METHOD=content
# OPTIONAL - Basic settings
- TZ=America/New_York
- LOG_LEVEL=INFO
- SYNC_PERIOD_MINS=5
- FUZZY_MATCH_THRESHOLD=88
volumes:
# REQUIRED
- ./data:/data
- /path/to/your/ebooks:/books
ports:
- "8080:5757"Replace these:
YOUR_ABS_SERVER.com→ Your Audiobookshelf URLYOUR_API_TOKEN_HERE→ The API key from Step 1YOUR_LIBRARY_ID→ The library ID from Step 1YOUR_CALIBRE_SERVER.com→ Your Calibre/KOSync serverYOUR_USERNAME→ Your KOSync usernameYOUR_PASSWORD→ Your KOSync password/path/to/your/ebooks→ Where your EPUB files are
docker compose up -dCheck if it's running:
docker compose logs -fLook for:
- ✅ Connected to Audiobookshelf
- ✅ Connected to KOSync Server
Press Ctrl+C to exit logs.
Open your browser to: http://localhost:8080
You should see the ABS-KoSync dashboard!
- Click "Single Match" button
- Find an audiobook you're currently listening to
- Find the matching ebook
- Click "Create Mapping"
That's it! The sync will start automatically.
Your progress should now sync between:
- Audiobookshelf (when listening)
- KOReader (when reading)
The system checks every 5 minutes by default.
docker compose logsLook for error messages about API keys or server connections.
- Check if port 8080 is available:
docker compose ps - Try http://localhost:8080 or http://YOUR_SERVER_IP:8080
- Wait 5 minutes (default sync period)
- Check the dashboard - does it show progress?
- Make sure you're using the same ebook file in both systems
Once basic sync is working, you can add:
- Storyteller integration (three-way sync)
- Book Linker (automated Storyteller workflows)
- Booklore integration (shelf organization)
See the full README.md for advanced features!
- Check the logs:
docker compose logs -f - Read the full README.md
- Open an issue on GitHub with your logs