Skip to content

Commit 625332d

Browse files
authored
Merge pull request #89 from cporcellijr/dev
Updated Settings page Added documentation
2 parents a3888ec + 27edd48 commit 625332d

22 files changed

+1177
-399
lines changed

.github/workflows/ci.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- main
8+
paths:
9+
- 'docs/**'
10+
- 'mkdocs.yml'
11+
- '.github/workflows/ci.yml'
12+
13+
permissions:
14+
contents: write
15+
16+
jobs:
17+
deploy:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
24+
- name: Configure Git Credentials
25+
run: |
26+
git config user.name "github-actions[bot]"
27+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
28+
29+
- uses: actions/setup-python@v4
30+
with:
31+
python-version: 3.x
32+
33+
- name: Install dependencies
34+
run: |
35+
pip install mkdocs-material
36+
37+
- name: Deploy to gh-pages
38+
run: mkdocs gh-deploy --force

README.md

Lines changed: 21 additions & 176 deletions
Original file line numberDiff line numberDiff line change
@@ -2,206 +2,51 @@
22

33
<div align="center">
44

5+
![ABS-KoSync Bridge](static/images/logo.png)
56

67
**The ultimate bridge for cross-platform reading and listening synchronization.**
78

8-
[Features](#-features) • [How It Works](#-how-it-works) • [Quick Start](#-quick-start) • [Configuration](#-configuration) • [Web UI](#-web-interface) • [Troubleshooting](#-troubleshooting)
9-
10-
</div>
11-
12-
---
13-
14-
## 📖 What is it?
15-
16-
**ABS-KoSync Enhanced** is a powerful, automated synchronization engine designed to unify your reading and listening experiences. It bridges the gap between audiobooks and ebooks, ensuring that whether you're listening on the go or reading on your e-reader, your progress is always perfectly aligned.
17-
18-
### 🔄 Five-Way Synchronization
19-
20-
The system keeps your progress in sync across all major platforms:
21-
22-
| Platform | Type | Capability |
23-
| :--- | :--- | :--- |
24-
| **Audiobookshelf** | Audiobooks | Full Read/Write Sync |
25-
| **KOReader / KOSync** | Ebooks | Full Read/Write Sync |
26-
| **Storyteller** | Enhanced Reader | Full Read/Write Sync (REST API & SQLite) |
27-
| **Booklore** | Library Management | Full Read/Write Sync |
28-
| **Hardcover.app** | Book Tracking | Write-Only Tracking (Auto-Update Finished Status) |
29-
30-
---
31-
32-
## ✨ Features
33-
34-
### 🚀 Core Sync Engine
35-
- **AI-Powered Alignment**: Uses Whisper AI transcription to accurately map audio timestamps to ebook text.
36-
- **Multi-Platform Support**: Synchronize progress across five different ecosystems simultaneously.
37-
- **Smart Conflict Resolution**: "Furthest progress wins" logic with built-in anti-regression protection.
38-
- **Rich Positioning**: Support for XPath, CSS selectors, and EPUB CFI for pixel-perfect positioning.
39-
- **Resumable Jobs**: Background transcription jobs resume automatically if interrupted.
40-
41-
### 🖥️ Management Web UI
42-
- **Real-Time Dashboard**: Monitor progress and sync status across all your books.
43-
- **Advanced Matcher**: Manual mapping for complex titles or different editions.
44-
- **Batch Processing**: Queue and process multiple books for synchronization in bulk.
45-
- **Book Linker**: Automated workflow for Storyteller readaloud generation.
46-
- **Dynamic Settings**: Configure your entire system from the Web UI with instant hot-reloading.
47-
48-
### 🤖 Automation & Reliability
49-
- **Background Daemon**: Configurable sync intervals for hands-off operation.
50-
- **Auto-Organization**: Automatic addition to ABS collections and Booklore shelves.
51-
- **Error Recovery**: Automatic retry logic for failed transcription or sync tasks.
9+
[![Documentation](https://img.shields.io/badge/docs-live-blue)](https://cporcellijr.github.io/abs-kosync-bridge/)
10+
[![License](https://img.shields.io/github/license/cporcellijr/abs-kosync-bridge)](LICENSE)
11+
[![Release](https://img.shields.io/github/v/release/cporcellijr/abs-kosync-bridge)](https://github.com/cporcellijr/abs-kosync-bridge/releases)
5212

5313
---
5414

55-
## 🛠️ How It Works
15+
### 📚 [Read the Full Documentation](https://cporcellijr.github.io/abs-kosync-bridge/)
5616

57-
The sync cycle ensures a seamless transition between platforms:
17+
</div>
5818

59-
```mermaid
60-
graph TD
61-
A[Start Sync Cycle] --> B[Fetch Progress from All Platforms]
62-
B --> C{Identify Leader}
63-
C -->|New Progress Found| D[Convert Position]
64-
D --> E[Audio <--> Text Translation]
65-
E --> F[Update All Participating Platforms]
66-
F --> G[Save Final State]
67-
G --> A
68-
```
19+
## 📖 What is it?
6920

70-
> [!NOTE]
71-
> **Audio to Text Conversion**: The system extracts a snippet of text from the audiobook transcript at the current timestamp and performs a fuzzy search within the EPUB to find the corresponding ebook location.
21+
**ABS-KoSync Enhanced** is a powerful synchronization engine that bridges the gap between **Audiobookshelf** and **KOReader**. It ensures your reading and listening progress is always perfectly aligned, whether you're on your e-reader or listening on the go.
7222

73-
---
23+
## ✨ Key Features
7424

75-
## 🚦 Quick Start
25+
- **Five-Way Sync**: Syncs Audiobookshelf, KOReader, Storyteller, Booklore, and Hardcover.
26+
- **AI-Powered**: Uses Whisper for precise audio-to-text alignment.
27+
- **Web UI**: Full management dashboard for tracking syncs and matching books.
28+
- **Self-Hosted**: Runs entirely in Docker on your own server.
7629

77-
### 1. Prepare Environment
78-
```bash
79-
mkdir abs-kosync && cd abs-kosync
80-
mkdir data
81-
```
82-
83-
### 2. Configure Docker Compose
84-
Create a `docker-compose.yml` file.
30+
## 🚀 Quick Start
8531

8632
```yaml
8733
services:
8834
abs-kosync:
8935
image: ghcr.io/cporcellijr/abs-kosync-bridge:latest
90-
container_name: abs_kosync
91-
restart: unless-stopped
9236
ports:
9337
- "8080:5757"
9438
environment:
9539
- TZ=America/New_York
96-
- ABS_SERVER=https://your-abs-server.com
97-
- ABS_KEY=your_abs_api_token
98-
- ABS_LIBRARY_ID=your_library_uuid
40+
# NOTE: All configuration is managed in the Web UI.
9941
volumes:
100-
# === REQUIRED ===
101-
- ./data:/data # App data (database, transcripts)
102-
- /path/to/ebooks:/books # Your EPUB library
103-
104-
# === OPTIONAL: Helper Workflows ===
105-
# Map these if you plan to use the "Book Linker" automation:
106-
# - /path/to/ebooks:/linker_books # Source ebooks to copy from
107-
# - /path/to/audiobooks:/audiobooks # Source audiobooks to copy from
108-
# - /path/to/processing:/processing # Temp folder for Storyteller processing
109-
# - /path/to/storyteller/library:/storyteller_ingest # Final Storyteller library destination
110-
111-
# === OPTIONAL: Legacy Support ===
112-
# - /path/to/storyteller/data:/storyteller_data # Only if using SQLite sync mode
113-
```
114-
115-
### 3. Deploy
116-
```bash
117-
docker compose up -d
42+
- ./data:/data
43+
- /books:/books
11844
```
11945

120-
### 4. Configure via Web UI
121-
Once the container is running, open `http://localhost:8080/settings`. You can configure all optional integrations (KOSync, Storyteller, Booklore, Hardcover) and sync behavior directly from the UI. **No container restart required!**
46+
For full installation instructions, checking logs, and advanced configuration, please visit the **[Documentation Site](https://cporcellijr.github.io/abs-kosync-bridge/)**.
12247

12348
---
12449

125-
## ⚙️ Configuration
126-
127-
While you can use environment variables in your `docker-compose.yml`, we recommend using the **Web Settings Page** for easier management.
128-
129-
### 🔊 Audiobookshelf (Required)
130-
| Variable | Description |
131-
| :--- | :--- |
132-
| `ABS_SERVER` | Your Audiobookshelf URL |
133-
| `ABS_KEY` | API Token (Settings → Users) |
134-
| `ABS_LIBRARY_ID` | The ID of the library to sync |
135-
136-
### 🔧 Integration Options (Configurable via UI)
137-
- **KOSync**: Connect your KOReader sync server.
138-
- **Storyteller**: Link your Storyteller library (API or local DB).
139-
- **Booklore**: Integrate with Calibre-Web/Booklore management.
140-
- **Hardcover**: Automatically update your "Finished" status on Hardcover.app.
141-
- **Sync Tuning**: Adjust thresholds, Whisper models, and sync intervals.
142-
143-
---
144-
145-
## 🖥️ Web Interface
146-
147-
Access the UI at `http://your-ip:8080`.
148-
149-
- **Dashboard**: Overview of all active syncs and their current progress.
150-
- **Settings**: Manage all configuration options with per-save hot-reloading.
151-
- **Match Page**: Search for audiobooks and select their matching ebook file.
152-
- **Batch Match**: Add multiple titles to a queue for automated processing.
153-
- **Book Linker**: Automated Storyteller ingestion workflow.
154-
155-
---
156-
157-
## ❓ Troubleshooting
158-
159-
> [!TIP]
160-
> **Check the Logs**: Documentation and live logs are available directly in the Web UI, or via `docker compose logs -f`.
161-
162-
- **Transcription taking too long?** Try setting `WHISPER_MODEL=tiny` in the Settings page, or enable **GPU acceleration** (see below).
163-
- **Books not showing up?** Ensure your `/books` volume is correctly mounted and readable.
164-
- **Syncing backwards?** The system includes anti-regression, but you can "Clear Progress" for a book in the Dashboard to reset its state.
165-
166-
### 🎮 GPU Acceleration (Optional)
167-
168-
For faster transcription, you can enable NVIDIA GPU acceleration:
169-
170-
1. Install [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html)
171-
2. Add the GPU deploy section to your `docker-compose.yml`:
172-
```yaml
173-
deploy:
174-
resources:
175-
reservations:
176-
devices:
177-
- driver: nvidia
178-
count: 1
179-
capabilities: [gpu]
180-
```
181-
3. In the Settings page, set:
182-
- **Whisper Device**: `cuda` (or `auto` to auto-detect)
183-
- **Whisper Compute Type**: `float16` (optimal for GPU)
184-
- **Whisper Model**: `small` or `medium` for better accuracy (GPU handles larger models faster)
185-
186-
---
187-
188-
## 🤝 Contributing & Support
189-
190-
Found a bug or have a suggestion?
191-
1. Open an [Issue](https://github.com/cporcellijr/abs-kosync-bridge/issues)
192-
2. Submit a [Pull Request](https://github.com/cporcellijr/abs-kosync-bridge/pulls)
193-
194-
### 📝 Contribution Guidelines
195-
We follow a structured workflow to ensure stability:
196-
- **`main`**: Stable release branch. Accepts merges **only** from `dev`.
197-
- **`dev`**: Development branch. Target this branch for all Pull Requests.
198-
- **Feature Branches**: Create your branch from `dev` (e.g., `feature/new-thing` or `fix/bug-name`).
199-
200-
> [!IMPORTANT]
201-
> **PRs targeting `main` directly will be automatically blocked.** Please ensure your PR targets `dev`.
202-
203-
---
204-
205-
<p align="center">
206-
Generated by Antigravity AI
207-
</p>
50+
<div align="center">
51+
<sub>Generated by Antigravity AI</sub>
52+
</div>

docker-compose.example.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
# See README.md for detailed configuration instructions.
55

66
services:
7-
abs-kosync-enhanced:
8-
image: cporcellijr/abs-kosync-enhanced:latest
7+
abs-kosync:
8+
image: ghcr.io/cporcellijr/abs-kosync-bridge:latest
99

1010
# Optional: Build locally if you need specific modifications or GPU libraries included
1111
# build:
1212
# context: .
1313
# args:
1414
# # Set to "true" to download NVIDIA CUDA libraries (adds ~800MB to image)
1515
# INSTALL_GPU: "false"
16-
container_name: abs_kosync_enhanced
16+
container_name: abs_kosync
1717
restart: unless-stopped
1818

1919
environment:
@@ -26,7 +26,7 @@ services:
2626
# Configuration Note
2727
# ============================================
2828
# All other configuration (ABS, KoSync, Providers, etc.)
29-
# is now managed via the Web UI variables at http://localhost:5757/settings
29+
# is now managed via the Web UI variables at http://localhost:8080/settings
3030

3131
volumes:
3232
# ============================================

docs/changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Changelog
2+
3+
For the most up-to-date changes, features, and bug fixes, please refer to the **[GitHub Releases](https://github.com/cporcellijr/abs-kosync-bridge/releases)** page.

0 commit comments

Comments
 (0)