From 67629b0c14437f14fcdff94b290124224e588a83 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Sun, 1 Feb 2026 16:12:12 -0500 Subject: [PATCH] =?UTF-8?q?Rename=20project=20documentation:=20Bookmann=20?= =?UTF-8?q?=E2=86=92=20Bookhoard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documentation updates: - Update README.md title and all references - Update PROJECT_GUIDELINES.md title and guidelines - Update all documentation files in docs/ directory - Update device setup guides (Kobo, KOReader) - Update API and architecture documentation - Update completion summaries and progress reports This is part 5 of the project rename to Bookhoard. --- PROJECT_GUIDELINES.md | 2 +- README.md | 2 +- docs/API_REFERENCE.md | 4 +- docs/COLLECTIONS_API.md | 8 +- docs/Code/bookmann/IMPLEMENTATION_PLAN.md | 88 +++++++-------- docs/LEGACY_CLEANUP_PHASES_1-3_COMPLETE.md | 2 +- docs/PHASE2_COMPLETION_SUMMARY.md | 2 +- docs/PROGRESS_ROUTES_ANALYSIS.md | 4 +- docs/SECURITY_AUDIT.md | 6 +- docs/SECURITY_ENHANCEMENTS.md | 4 +- docs/SYNC_USER_GUIDE.md | 16 +-- docs/TESTING.md | 6 +- docs/api/WEBSOCKET_API.md | 14 +-- docs/devices/KOBO_SETUP.md | 120 ++++++++++----------- docs/devices/KOREADER_SETUP.md | 90 ++++++++-------- 15 files changed, 184 insertions(+), 184 deletions(-) diff --git a/PROJECT_GUIDELINES.md b/PROJECT_GUIDELINES.md index f4404c6..20acbae 100644 --- a/PROJECT_GUIDELINES.md +++ b/PROJECT_GUIDELINES.md @@ -1,4 +1,4 @@ -# Combined Project Guidelines for Bookmann +# Combined Project Guidelines for Bookhoard ## 🚨 CRITICAL PROHIBITIONS (Never violate these) diff --git a/README.md b/README.md index a6ab664..6befca7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 📚 Bookmann +# 📚 Bookhoard A modern self-hosted media library system built with Go, PostgreSQL, HTMX, and Tailwind CSS featuring multiple library support, beautiful dark themes, and comprehensive media management. diff --git a/docs/API_REFERENCE.md b/docs/API_REFERENCE.md index 11cafe2..3ae0660 100644 --- a/docs/API_REFERENCE.md +++ b/docs/API_REFERENCE.md @@ -1,6 +1,6 @@ -# Bookmann API Reference +# Bookhoard API Reference -Complete API documentation for Bookmann v1.0 with Universal Cross-Platform Sync support. +Complete API documentation for Bookhoard v1.0 with Universal Cross-Platform Sync support. ## Table of Contents diff --git a/docs/COLLECTIONS_API.md b/docs/COLLECTIONS_API.md index 29f8fdf..82b2e3f 100644 --- a/docs/COLLECTIONS_API.md +++ b/docs/COLLECTIONS_API.md @@ -378,9 +378,9 @@ Collections allow you to organize your books into custom categories with: ``` **Sync Directions**: -- `bidirectional`: Sync both ways between Bookmann and device -- `book_to_device`: Bookmann → Device only -- `device_to_book`: Device → Bookmann only +- `bidirectional`: Sync both ways between Bookhoard and device +- `book_to_hoard`: Bookhoard → Device only +- `device_to_hoard`: Device → Bookhoard only - `none`: No sync (mapping only) **Response** (201 Created): Mapping object @@ -399,7 +399,7 @@ Collections allow you to organize your books into custom categories with: ```json { "device_shelf_name": "Science Fiction", - "sync_direction": "book_to_device" + "sync_direction": "book_to_hoard" } ``` diff --git a/docs/Code/bookmann/IMPLEMENTATION_PLAN.md b/docs/Code/bookmann/IMPLEMENTATION_PLAN.md index 249a1dc..f517b06 100644 --- a/docs/Code/bookmann/IMPLEMENTATION_PLAN.md +++ b/docs/Code/bookmann/IMPLEMENTATION_PLAN.md @@ -1,4 +1,4 @@ -# Bookmann Implementation Plan +# Bookhoard Implementation Plan ## Executive Summary @@ -33,7 +33,7 @@ This plan implements a complete cross-device ebook management system with three ``` ┌─────────────────────────────────────────────────────────────────┐ -│ Bookmann Server │ +│ Bookhoard Server │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ Layer 1: Universal Book Identification │ │ │ │ SHA-256, UUID, ISBN, ASIN, OPF identifiers │ │ @@ -52,7 +52,7 @@ This plan implements a complete cross-device ebook management system with three │ │ Per-device OPDS feeds (Kobo, KOReader, etc.) │ │ │ │ Format conversion (EPUB → KEPUB on-the-fly) │ │ │ │ Dual hash storage (original + converted) │ │ -│ │ ContentId mapping (Bookmann UUID ↔ Device ID) │ │ +│ │ ContentId mapping (Bookhoard UUID ↔ Device ID) │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ ↓ delivers books + provides IDs │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ @@ -70,7 +70,7 @@ This plan implements a complete cross-device ebook management system with three | Platform | Access Method | Purpose | Why This Method | |-----------|----------------|---------|-----------------| -| **Kobo** | OPDS catalog | Kobo has built-in OPDS client, no custom Bookmann client exists | +| **Kobo** | OPDS catalog | Kobo has built-in OPDS client, no custom Bookhoard client exists | | **KOReader** | OPDS catalog (primary) + Sidecar + Internal API | KOReader has OPDS client, also supports plugins/sidecars for enhanced features | | **Web App** | Internal API directly | We own and control web app, can make direct API calls efficiently | | **Mobile App** | Internal API directly | We own and control mobile app, can make direct API calls efficiently | @@ -78,7 +78,7 @@ This plan implements a complete cross-device ebook management system with three ### Key Design Principles -1. **Canonical UUID Always Wins** - Bookmann UUID (from `media_items.id`) is always used for progress tracking, never SHA-256. SHA-256 is only for matching books across devices, preventing format conversion issues. +1. **Canonical UUID Always Wins** - Bookhoard UUID (from `media_items.id`) is always used for progress tracking, never SHA-256. SHA-256 is only for matching books across devices, preventing format conversion issues. 2. **Collections ≠ Device Inventory** - Collections are organizational metadata (like "smart playlists"). Books can be in collections without being on any device. Progress/annotations sync independently of collection membership. @@ -93,7 +93,7 @@ This plan implements a complete cross-device ebook management system with three - Tier 2 (Sync APIs): Device tokens for progress/annotation sync - Tier 3 (OPDS): Device tokens for catalog access (optional per-device) -6. **Terminology Separation** - Always use "Collections" terminology in Bookmann UI. Map Collections to device-specific "Shelves" only at API/device level. Kobo devices see "Shelves", KOReader/Web/Mobile see "Collections". Prevents legal issues. +6. **Terminology Separation** - Always use "Collections" terminology in Bookhoard UI. Map Collections to device-specific "Shelves" only at API/device level. Kobo devices see "Shelves", KOReader/Web/Mobile see "Collections". Prevents legal issues. 7. **OPDS Primary for All Devices** - Kobo, KOReader, Web, and Mobile all use OPDS as primary book delivery method. Sidecar files provide fallback/enhanced features but are optional. @@ -211,7 +211,7 @@ CREATE INDEX idx_collection_items_media ON collection_items(media_item_id); ### Table: device_shelf_mappings (NEW) ```sql --- Map Bookmann collections to device-specific shelf names +-- Map Bookhoard collections to device-specific shelf names -- This is where "Collections" terminology maps to Kobo's "Shelves" CREATE TABLE device_shelf_mappings ( @@ -219,7 +219,7 @@ CREATE TABLE device_shelf_mappings ( collection_id UUID REFERENCES collections(id) ON DELETE CASCADE, device_id UUID REFERENCES devices(id) ON DELETE CASCADE, device_shelf_name VARCHAR(100), -- What appears on Kobo device - sync_direction VARCHAR(20), -- 'bidirectional', 'book_to_device', 'device_to_book', 'none' + sync_direction VARCHAR(20), -- 'bidirectional', 'book_to_hoard', 'device_to_hoard', 'none' created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), UNIQUE(collection_id, device_id) ); @@ -231,7 +231,7 @@ CREATE INDEX idx_device_shelf_mappings_device ON device_shelf_mappings(device_id ### Table: device_catalogs (NEW) ```sql --- Track OPDS downloads and map Bookmann UUIDs to device ContentIds +-- Track OPDS downloads and map Bookhoard UUIDs to device ContentIds -- Critical for bidirectional progress sync with format conversion handling CREATE TABLE device_catalogs ( @@ -326,7 +326,7 @@ users #### POST `/api/sync/books/query` -Query Bookmann for a book by multiple identifier types with confidence scoring. +Query Bookhoard for a book by multiple identifier types with confidence scoring. **Request**: ```json @@ -355,7 +355,7 @@ Query Bookmann for a book by multiple identifier types with confidence scoring. ``` **Matching Priority**: -1. Bookmann UUID (canonical) - Confidence: 1.0 +1. Bookhoard UUID (canonical) - Confidence: 1.0 2. OPF UUID (from EPUB metadata) - Confidence: 0.95 3. SHA-256 hash (content-based match) - Confidence: 0.9 4. OPF identifier (non-UUID) - Confidence: 0.85 @@ -655,7 +655,7 @@ Main OPDS 1.2 catalog feed. xmlns:opds="http://opds-spec.org/2010/" xmlns:dc="http://purl.org/dc/elements/1.1/"> urn:uuid:device-id - Bookmann Library + Bookhoard Library 2026-01-31T12:00:00Z @@ -734,9 +734,9 @@ Download book with optional format conversion. **Response Headers**: - `Content-Type`: application/epub+zip (or format-specific) - `Content-Disposition`: attachment; filename="The Hobbit.epub" -- `X-Bookmann-UUID`: uuid-123 -- `X-Bookmann-SHA256`: abc123... (for format-specific if available) -- `X-Bookmann-KEPUB-SHA256`: xyz789... (if format=kepub) +- `X-Bookhoard-UUID`: uuid-123 +- `X-Bookhoard-SHA256`: abc123... (for format-specific if available) +- `X-Bookhoard-KEPUB-SHA256`: xyz789... (if format=kepub) **Format Conversion Logic**: ```go @@ -746,7 +746,7 @@ case "kepub": // Check media_item_formats table for pre-converted KEPUB if kepubFormat.Exists && kepubFormat.FilePath != "" { Serve pre-converted file - Set X-Bookmann-KEPUB-SHA256: kepubFormat.SHA256 + Set X-Bookhoard-KEPUB-SHA256: kepubFormat.SHA256 } case "pdf": // Serve PDF directly @@ -853,8 +853,8 @@ Kobo progress sync with ContentId mapping (enhanced). // Step 1: Try direct ContentId lookup catalog, err := db.GetDeviceCatalogByKoboContentId(ctx, contentId) if err == nil && catalog.Valid { - // Found! Use canonical Bookmann UUID - bookmannUUID = catalog.BookmannUUID + // Found! Use canonical Bookhoard UUID + bookmannUUID = catalog.BookhoardUUID return bookmannUUID, nil } @@ -891,7 +891,7 @@ Kobo library sync with collection metadata (enhanced). // NEW: Collection metadata "Categories": ["Science Fiction", "Reading"], - "BookmannUUID": "uuid-123" // Canonical ID + "BookhoardUUID": "uuid-123" // Canonical ID } ] } @@ -1119,7 +1119,7 @@ LOW (confidence = 0.5): **Matching Algorithm**: ``` -Priority 1: Bookmann UUID (canonical) +Priority 1: Bookhoard UUID (canonical) - If device sends UUID, use directly - Confidence = 1.0 @@ -1257,12 +1257,12 @@ When user downloads with ?format=kepub: 1. Check media_item_formats table 2. If KEPUB exists and is recent: - Serve pre-converted file - - Set X-Bookmann-SHA256: kepubFormat.SHA256 + - Set X-Bookhoard-SHA256: kepubFormat.SHA256 3. If KEPUB doesn't exist: - Convert EPUB to KEPUB on-the-fly - Cache in media_item_formats table - Serve converted file - - Set X-Bookmann-SHA256: kepubFormat.SHA256 + - Set X-Bookhoard-SHA256: kepubFormat.SHA256 4. Serve PDF directly ``` @@ -1287,8 +1287,8 @@ When user downloads with ?format=kepub: // Step 1: Try direct ContentId lookup catalog, err := db.GetDeviceCatalogByKoboContentId(ctx, contentId) if err == nil && catalog.Valid { - // Found! Use canonical Bookmann UUID - return catalog.BookmannUUID, nil + // Found! Use canonical Bookhoard UUID + return catalog.BookhoardUUID, nil } // Step 2: ContentId not found - try SHA-256 @@ -1440,7 +1440,7 @@ if book.FilePath != "" { **Step 1: Download Configuration File** ``` -1. Log into Bookmann web UI +1. Log into Bookhoard web UI 2. Go to Device Management → Your Kobo device 3. Click "Download Configuration" button 4. File downloads as `.bookmann.json` @@ -1453,16 +1453,16 @@ if book.FilePath != "" { 3. Enter URL from `.bookmann.json`: http://192.168.1.100:8765/opds/devices/YOUR_DEVICE_ID/catalog 4. Kobo will automatically: - - Connect to Bookmann + - Connect to Bookhoard - Browse your library wirelessly - Download books directly - - Sync reading progress back to Bookmann + - Sync reading progress back to Bookhoard ``` **Step 3: Wireless Book Acquisition** ``` 1. On Kobo, go to "My Books" section -2. Browse Bookmann catalog via OPDS +2. Browse Bookhoard catalog via OPDS 3. Tap on any book to download wirelessly 4. Book appears on Kobo device 5. Start reading - progress syncs automatically @@ -1470,8 +1470,8 @@ if book.FilePath != "" { **How Progress Sync Works**: - Kobo generates ContentId for each book -- ContentId mapped to Bookmann UUID in device_catalogs table -- When Kobo syncs progress, Bookmann uses canonical UUID +- ContentId mapped to Bookhoard UUID in device_catalogs table +- When Kobo syncs progress, Bookhoard uses canonical UUID - Format conversion (KEPUB) doesn't break progress tracking ### KOReader Setup @@ -1490,7 +1490,7 @@ Same as Kobo setup above 3. Enter OPDS URL from `.bookmann.json`: http://192.168.1.100:8765/opds/devices/YOUR_DEVICE_ID/catalog 4. KOReader will automatically: - - Connect to Bookmann catalog + - Connect to Bookhoard catalog - Browse and download books wirelessly - Sync progress using SHA-256 matching - Create file aliases automatically @@ -1500,7 +1500,7 @@ Same as Kobo setup above ``` 1. Open KOReader file browser 2. Tap "+" button to add OPDS catalog -3. Browse Bookmann catalog +3. Browse Bookhoard catalog 4. Download books directly 5. Start reading ``` @@ -1522,7 +1522,7 @@ Place in KOReader's config directory **Step 3: Use Sidecar for Progress Sync** ``` KOReader plugin reads .bookmann.json -→ Matches local files to Bookmann UUIDs via SHA-256 +→ Matches local files to Bookhoard UUIDs via SHA-256 → Syncs progress using canonical UUIDs → Works offline ``` @@ -1628,7 +1628,7 @@ Can be: Public (no authentication required) - [ ] Browse catalog wirelessly - [ ] Download book - [ ] Read 50% of book -- [ ] Verify progress syncs to Bookmann +- [ ] Verify progress syncs to Bookhoard **KOReader Workflow**: - [ ] Download `.bookmann.json` from web UI @@ -1636,10 +1636,10 @@ Can be: Public (no authentication required) - [ ] Browse catalog wirelessly - [ ] Download book - [ ] Read 75% of book -- [ ] Verify progress syncs to Bookmann +- [ ] Verify progress syncs to Bookhoard **Cross-Device Scenario**: -- [ ] Add book to Bookmann (EPUB scanned) +- [ ] Add book to Bookhoard (EPUB scanned) - [ ] Download to Kobo via OPDS - [ ] Sync progress (60%) from Kobo - [ ] Open same book on KOReader (side-loaded) @@ -1651,18 +1651,18 @@ Can be: Public (no authentication required) ## Glossary -- **Bookmann UUID**: Canonical identifier for a book in Bookmann system (from `media_items.id`). Always used for progress tracking, never SHA-256. SHA-256 is only for matching books across devices. -- **ContentId**: Device-generated identifier (e.g., Kobo's "kobo_abc"). Mapped to Bookmann UUID in `device_catalogs` table. Used for progress sync after OPDS downloads. +- **Bookhoard UUID**: Canonical identifier for a book in Bookhoard system (from `media_items.id`). Always used for progress tracking, never SHA-256. SHA-256 is only for matching books across devices. +- **ContentId**: Device-generated identifier (e.g., Kobo's "kobo_abc"). Mapped to Bookhoard UUID in `device_catalogs` table. Used for progress sync after OPDS downloads. - **SHA-256**: Cryptographic hash of file contents. Used for content-based matching across devices. Critical for identifying same book on different devices. - **OPF UUID**: Unique identifier from EPUB metadata ``. High-confidence identifier format. - **OPF Identifier**: Any identifier from EPUB OPF file (custom format). Medium-confidence identifier format. - **ISBN**: International Standard Book Number (13 digits). Medium-confidence standard identifier. - **ASIN**: Amazon Standard Identification Number (10 characters). Medium-confidence standard identifier. -- **Collections**: Device-neutral organizational groups in Bookmann (e.g., "Science Fiction", "Reading"). Books can be in collections without being on any device. Collections organize library, not track device inventory. -- **Shelves**: Device-specific organization (e.g., Kobo's terminology). Map Collections to device-specific "Shelves" only at device-level. Bookmann UI always uses "Collections" terminology. +- **Collections**: Device-neutral organizational groups in Bookhoard (e.g., "Science Fiction", "Reading"). Books can be in collections without being on any device. Collections organize library, not track device inventory. +- **Shelves**: Device-specific organization (e.g., Kobo's terminology). Map Collections to device-specific "Shelves" only at device-level. Bookhoard UI always uses "Collections" terminology. - **OPDS**: Open Publication Distribution System. Industry standard for book catalogs. All e-reader platforms have OPDS clients. Kobo, KOReader, Aldiko, FBReader, Web browsers can use OPDS catalogs. -- **Internal APIs**: Bookmann's private REST/WebSocket endpoints for state management. Web and mobile apps use these directly. Used for two-way sync, collections, WebSocket real-time updates. -- **Device File Alias**: Mapping of device-specific file paths to Bookmann UUIDs. Enables cross-device matching when same book has different file paths. +- **Internal APIs**: Bookhoard's private REST/WebSocket endpoints for state management. Web and mobile apps use these directly. Used for two-way sync, collections, WebSocket real-time updates. +- **Device File Alias**: Mapping of device-specific file paths to Bookhoard UUIDs. Enables cross-device matching when same book has different file paths. - **Hash Confidence**: Scoring system (0.0-1.0) for automatic book matching reliability. Higher values = more reliable match. - **Dual Hash Storage**: Storing both original EPUB hash (`epub_sha256`) and converted KEPUB hash (`kepub_sha256`). Preserves hash integrity when files are converted. OPDS responses include format-specific hash for sidecar matching. - **Format Conversion**: Transcoding between book formats (EPUB → KEPUB). KEPUB adds Kobo-specific markup. Critical for Kobo optimization but shouldn't break progress tracking. @@ -1671,7 +1671,7 @@ Can be: Public (no authentication required) - **OPDS Tokens**: Per-device access tokens for OPDS catalog browsing. Optional - can also support user-scoped and admin tokens. - **Sidecar File**: `.bookmann.json` - Unified configuration file for devices. Contains OPDS URLs, sync API endpoints, book mappings, collection mappings. - **Auto-Assign Rules**: Configurable criteria for automatically adding books to collections. Fields: genre, series, author, language, publisher, copyright_year, tags. Operators: equals, contains, starts_with, ends_with, greater_than, less_than. -- **Sync Direction**: For device shelf mappings. 'bidirectional' (sync both ways), 'book_to_device' (send to device), 'device_to_book' (read from device), 'none' (no sync). +- **Sync Direction**: For device shelf mappings. 'bidirectional' (sync both ways), 'book_to_hoard' (send to device), 'device_to_hoard' (read from device), 'none' (no sync). - **View Settings**: Per-device preferences for how collections are displayed (grid vs list, which collections are visible). - **Unlinked Book**: Progress record without proper media_item_id or failed ContentId lookup. Needs manual user resolution. @@ -1689,4 +1689,4 @@ This comprehensive implementation plan provides: - **Glossary** of all terminology and concepts - **Testing strategies** covering unit, integration, and manual validation -The plan is designed for systematic execution while maintaining architectural consistency and enabling human oversight throughout the development process. All decisions from our conversations have been incorporated, providing a complete roadmap for implementing Bookmann as a comprehensive cross-device ebook management system. \ No newline at end of file +The plan is designed for systematic execution while maintaining architectural consistency and enabling human oversight throughout the development process. All decisions from our conversations have been incorporated, providing a complete roadmap for implementing Bookhoard as a comprehensive cross-device ebook management system. \ No newline at end of file diff --git a/docs/LEGACY_CLEANUP_PHASES_1-3_COMPLETE.md b/docs/LEGACY_CLEANUP_PHASES_1-3_COMPLETE.md index d6fb7ec..1b62aa7 100644 --- a/docs/LEGACY_CLEANUP_PHASES_1-3_COMPLETE.md +++ b/docs/LEGACY_CLEANUP_PHASES_1-3_COMPLETE.md @@ -2,7 +2,7 @@ ## Summary -Successfully completed Phases 1-3 of the legacy migration code cleanup for Bookmann. +Successfully completed Phases 1-3 of the legacy migration code cleanup for Bookhoard. --- diff --git a/docs/PHASE2_COMPLETION_SUMMARY.md b/docs/PHASE2_COMPLETION_SUMMARY.md index 3280dd7..7529e8b 100644 --- a/docs/PHASE2_COMPLETION_SUMMARY.md +++ b/docs/PHASE2_COMPLETION_SUMMARY.md @@ -289,7 +289,7 @@ curl -X GET http://localhost:8765/api/sync/unlinked-books/123e4567-e89b-12d3-a45 ### Matching Priority (Auto-Link) The auto-link feature uses the existing book matching algorithm with priority: -1. Bookmann UUID (canonical) - 1.0 confidence +1. Bookhoard UUID (canonical) - 1.0 confidence 2. OPF UUID - 0.95 confidence 3. SHA-256 hash - 0.9 confidence 4. OPF identifier - 0.85 confidence diff --git a/docs/PROGRESS_ROUTES_ANALYSIS.md b/docs/PROGRESS_ROUTES_ANALYSIS.md index 2ecf5d0..6b5c7bd 100644 --- a/docs/PROGRESS_ROUTES_ANALYSIS.md +++ b/docs/PROGRESS_ROUTES_ANALYSIS.md @@ -2,7 +2,7 @@ ## Overview -This document explores the current state of progress tracking in Bookmann, the migration from legacy media-item-specific routes to universal cross-device progress, and considerations for the future. +This document explores the current state of progress tracking in Bookhoard, the migration from legacy media-item-specific routes to universal cross-device progress, and considerations for the future. --- @@ -63,7 +63,7 @@ g.GET("/api/progress/:id/history", h.GetProgressHistory) ### 1. **Cross-Platform Kindle Ecosystem Vision** -Bookmann aims to replace the Kindle ecosystem, which requires: +Bookhoard aims to replace the Kindle ecosystem, which requires: - Syncing progress across multiple devices (Kindle, Kobo, phone, web) - Handling different progress formats (page numbers, percentages, CFI, character offsets) - Maintaining reading state across different device types diff --git a/docs/SECURITY_AUDIT.md b/docs/SECURITY_AUDIT.md index 9ff727a..d71feac 100644 --- a/docs/SECURITY_AUDIT.md +++ b/docs/SECURITY_AUDIT.md @@ -1,9 +1,9 @@ -# Bookmann Security Audit Report +# Bookhoard Security Audit Report ## Universal Sync Implementation (Phases 1-7) **Date**: January 31, 2026 **Version**: 1.0.0 -**Auditor**: Bookmann Security Team +**Auditor**: Bookhoard Security Team --- @@ -513,6 +513,6 @@ Audit Logs: 180 days --- -**Audit Completed By**: Bookmann Security Team +**Audit Completed By**: Bookhoard Security Team **Next Audit**: Within 3 months of production deployment **Questions**: security@bookmann.example.com diff --git a/docs/SECURITY_ENHANCEMENTS.md b/docs/SECURITY_ENHANCEMENTS.md index bd6f4c9..b15adae 100644 --- a/docs/SECURITY_ENHANCEMENTS.md +++ b/docs/SECURITY_ENHANCEMENTS.md @@ -3,13 +3,13 @@ **Date**: January 31, 2026 **Version**: 1.0.1 -**Implemented By**: Bookmann Security Team +**Implemented By**: Bookhoard Security Team --- ## Executive Summary -All **Priority 1** security recommendations from the security audit have been successfully implemented, bringing Bookmann's security rating from **A- (8.6/10)** to **A+ (9.2/10)**. +All **Priority 1** security recommendations from the security audit have been successfully implemented, bringing Bookhoard's security rating from **A- (8.6/10)** to **A+ (9.2/10)**. ### Security Scorecard Update diff --git a/docs/SYNC_USER_GUIDE.md b/docs/SYNC_USER_GUIDE.md index dc7827b..e0c8bbf 100644 --- a/docs/SYNC_USER_GUIDE.md +++ b/docs/SYNC_USER_GUIDE.md @@ -1,4 +1,4 @@ -# Bookmann Universal Sync - User Guide +# Bookhoard Universal Sync - User Guide ## Table of Contents 1. [What is Universal Sync?](#what-is-universal-sync) @@ -13,7 +13,7 @@ ## What is Universal Sync? -**Universal Sync** is Bookmann's cross-platform synchronization system that keeps your reading progress, highlights, and notes in sync across all your devices - automatically and in real-time. +**Universal Sync** is Bookhoard's cross-platform synchronization system that keeps your reading progress, highlights, and notes in sync across all your devices - automatically and in real-time. ### Key Features @@ -55,9 +55,9 @@ ### Prerequisites -1. **Bookmann Server** - Self-hosted instance running and accessible -2. **Network Connection** - Devices must be able to reach your Bookmann server -3. **User Account** - Created and logged in to Bookmann web interface +1. **Bookhoard Server** - Self-hosted instance running and accessible +2. **Network Connection** - Devices must be able to reach your Bookhoard server +3. **User Account** - Created and logged in to Bookhoard web interface ### Quick Start @@ -76,11 +76,11 @@ 1. **On Your Device**: - Open your reading app (KOReader/Kobo) - Navigate to sync settings - - Find "Bookmann Sync" or "Calibre Sync" + - Find "Bookhoard Sync" or "Calibre Sync" - Copy your device identifier (hardware ID) 2. **In Your Browser**: - - Go to your Bookmann server + - Go to your Bookhoard server - Log in with your account - Navigate to **Settings → Devices** - Click **Register New Device** @@ -102,7 +102,7 @@ 1. **From Your Device**: - Navigate to sync settings - - Select "Bookmann Sync" + - Select "Bookhoard Sync" - Enter server URL: `https://bookmann.example.com` - Click "Register Device" - Device will display registration code diff --git a/docs/TESTING.md b/docs/TESTING.md index a80f303..3ca3ec2 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -1,8 +1,8 @@ -# Bookmann Integration Test Suite Documentation +# Bookhoard Integration Test Suite Documentation ## Overview -This document provides comprehensive information about the integration test suite for Bookmann, including how to run tests, what they cover, and best practices for adding new tests. +This document provides comprehensive information about the integration test suite for Bookhoard, including how to run tests, what they cover, and best practices for adding new tests. ## Test Architecture @@ -550,4 +550,4 @@ jobs: --- **Last Updated**: 2025-02-01 -**Maintained By**: Bookmann Development Team +**Maintained By**: Bookhoard Development Team diff --git a/docs/api/WEBSOCKET_API.md b/docs/api/WEBSOCKET_API.md index 6929db6..8f8f020 100644 --- a/docs/api/WEBSOCKET_API.md +++ b/docs/api/WEBSOCKET_API.md @@ -70,7 +70,7 @@ const token = "your-jwt-token"; const ws = new WebSocket(`ws://localhost:8765/ws/sync?token=${token}`); ws.onopen = () => { - console.log("Connected to Bookmann WebSocket"); + console.log("Connected to Bookhoard WebSocket"); }; ws.onerror = (error) => { @@ -489,7 +489,7 @@ ws.onclose = () => { ### Complete JavaScript Client ```javascript -class BookmannWebSocket { +class BookhoardWebSocket { constructor(token) { this.token = token; this.ws = null; @@ -503,7 +503,7 @@ class BookmannWebSocket { this.ws = new WebSocket(url); this.ws.onopen = () => { - console.log("Connected to Bookmann"); + console.log("Connected to Bookhoard"); this.reconnectAttempts = 0; }; @@ -553,7 +553,7 @@ class BookmannWebSocket { // Usage const token = "your-jwt-token"; -const client = new BookmannWebSocket(token); +const client = new BookhoardWebSocket(token); client.on("initial_state", (message) => { console.log("Initial state received:", message.data); @@ -664,9 +664,9 @@ client.connect(); ## Support For issues or questions: -- GitHub Issues: [Bookmann Repository] -- Documentation: [Bookmann Docs] -- API Reference: [Bookmann API Docs] +- GitHub Issues: [Bookhoard Repository] +- Documentation: [Bookhoard Docs] +- API Reference: [Bookhoard API Docs] --- diff --git a/docs/devices/KOBO_SETUP.md b/docs/devices/KOBO_SETUP.md index b03fa52..3525955 100644 --- a/docs/devices/KOBO_SETUP.md +++ b/docs/devices/KOBO_SETUP.md @@ -1,10 +1,10 @@ # Kobo Device Setup Guide -This guide will help you set up your Kobo e-reader to sync with Bookmann for seamless cross-device reading progress synchronization. +This guide will help you set up your Kobo e-reader to sync with Bookhoard for seamless cross-device reading progress synchronization. ## What is Kobo Sync? -Bookmann implements a Kobo-compatible sync protocol that allows your Kobo device to: +Bookhoard implements a Kobo-compatible sync protocol that allows your Kobo device to: - Sync reading progress across all your devices - Sync highlights and bookmarks - Sync reading statistics @@ -14,14 +14,14 @@ Bookmann implements a Kobo-compatible sync protocol that allows your Kobo device Before you begin, make sure you have: - ✅ A Kobo e-reader device (Clara, Aura, Nia, Libra, Sage, Elipsa, etc.) -- ✅ A Bookmann instance running and accessible on your network -- ✅ Your Bookmann credentials (username and password) +- ✅ A Bookhoard instance running and accessible on your network +- ✅ Your Bookhoard credentials (username and password) - ✅ USB cable to connect your Kobo to your computer -- ✅ Your Kobo connected to the same Wi-Fi network as your Bookmann instance +- ✅ Your Kobo connected to the same Wi-Fi network as your Bookhoard instance ## Supported Kobo Devices -Bookmann supports all Kobo devices that use the standard Kobo sync protocol: +Bookhoard supports all Kobo devices that use the standard Kobo sync protocol: - **Kobo Clara**: Clara 2E, Clara HD - **Kobo Aura**: Aura, Aura H2O, Aura ONE, Aura Edition 2 - **Kobo Libra**: Libra 2, Libra H2O @@ -42,9 +42,9 @@ Bookmann supports all Kobo devices that use the standard Kobo sync protocol: 4. Note your **Device Serial Number** (e.g., N1234567890123) - This is your device identifier for registration -### Step 2: Register Your Device in Bookmann +### Step 2: Register Your Device in Bookhoard -1. Log in to your Bookmann web interface +1. Log in to your Bookhoard web interface 2. Navigate to **Device Management** → **Add New Device** 3. Fill in the device details: - **Device Name**: A friendly name (e.g., "My Kobo Clara") @@ -66,7 +66,7 @@ You'll receive: 2. **Method B: Manual URL** - Copy the Auth URL from the registration confirmation - Open it in your web browser - - Log in to your Bookmann account + - Log in to your Bookhoard account - Click **Approve Device** Your device is now registered and ready for configuration! @@ -97,7 +97,7 @@ Your device is now registered and ready for configuration! 2. Navigate to `.kobo/Kobo/Kobo eReader.conf` 3. Open in a text editor -### Step 3: Add Bookmann Sync Configuration +### Step 3: Add Bookhoard Sync Configuration Add the following section to the end of your `Kobo eReader.conf` file: @@ -107,7 +107,7 @@ Add the following section to the end of your `Kobo eReader.conf` file: KoboStoreSyncDisabled=true [Sync] -# Bookmann Sync Configuration +# Bookhoard Sync Configuration ServerURL=http://YOUR_COMPUTER_IP:8765/api/sync/kobo AutoSyncEnabled=true SyncFrequency=5 @@ -119,8 +119,8 @@ Password=YOUR_BOOKMANN_PASSWORD **Replace the following with your actual values**: - `YOUR_COMPUTER_IP`: Your computer's local IP address (e.g., 192.168.1.100) -- `YOUR_BOOKMANN_USERNAME`: Your Bookmann email or username -- `YOUR_BOOKMANN_PASSWORD`: Your Bookmann password +- `YOUR_BOOKMANN_USERNAME`: Your Bookhoard email or username +- `YOUR_BOOKMANN_PASSWORD`: Your Bookhoard password **Example configuration:** ```ini @@ -141,7 +141,7 @@ Password=securePassword123 ### Step 5: Verify Sync on Kobo 1. After Kobo restarts, go to **Settings** → **Sync & Backup** -2. You should see "Bookmann" listed as a sync provider +2. You should see "Bookhoard" listed as a sync provider 3. Tap **Sync Now** to test the connection 4. If successful, you'll see a "Sync Complete" message @@ -174,12 +174,12 @@ Kobo syncs: ### What is OPDS? -OPDS (Open Publication Distribution System) allows your Kobo to **wirelessly download books** from Bookmann - no USB cable needed! +OPDS (Open Publication Distribution System) allows your Kobo to **wirelessly download books** from Bookhoard - no USB cable needed! ### OPDS Benefits - **No USB Required**: Download books directly to your Kobo over Wi-Fi -- **On-Demand Delivery**: Browse your Bookmann library from your Kobo +- **On-Demand Delivery**: Browse your Bookhoard library from your Kobo - **Collection Support**: Download books from specific collections - **Progress Tracking**: Books downloaded via OPDS sync progress automatically - **Format Conversion**: Automatic EPUB to KEPUB conversion for better Kobo support @@ -211,8 +211,8 @@ OPDSCatalogURL=http://YOUR_COMPUTER_IP:8765/opds/devices/YOUR_DEVICE_ID/catalog ``` 4. Replace: - - `YOUR_COMPUTER_IP`: Your Bookmann server IP - - `YOUR_DEVICE_ID`: Your Kobo's device ID from Bookmann Device Management + - `YOUR_COMPUTER_IP`: Your Bookhoard server IP + - `YOUR_DEVICE_ID`: Your Kobo's device ID from Bookhoard Device Management 5. Save the file and safely eject your Kobo @@ -220,14 +220,14 @@ OPDSCatalogURL=http://YOUR_COMPUTER_IP:8765/opds/devices/YOUR_DEVICE_ID/catalog 1. Wake your Kobo and connect to Wi-Fi 2. Go to **Home** → **Store** (or **Shop**) -3. You'll see **Bookmann** listed as a store -4. Tap to enter the Bookmann catalog +3. You'll see **Bookhoard** listed as a store +4. Tap to enter the Bookhoard catalog ### Browse and Download Books #### Browse All Books -1. In the Bookmann catalog, you'll see all books from your library +1. In the Bookhoard catalog, you'll see all books from your library 2. Browse by: - **Recently Added**: Latest books in your library - **Collections**: Books organized by collections @@ -244,7 +244,7 @@ OPDSCatalogURL=http://YOUR_COMPUTER_IP:8765/opds/devices/YOUR_DEVICE_ID/catalog #### Download from Collections -1. In the Bookmann catalog, tap **Collections** +1. In the Bookhoard catalog, tap **Collections** 2. Select a collection (e.g., "Science Fiction") 3. Browse books in that collection 4. Tap to download individual books @@ -259,34 +259,34 @@ Kobo OPDS supports: - **KEPUB**: Kobo-optimized EPUB (better page turns, fonts) - **PDF**: Fixed-layout documents -**Automatic Conversion**: Bookmann automatically converts EPUB to KEPUB on-the-fly for better Kobo experience. +**Automatic Conversion**: Bookhoard automatically converts EPUB to KEPUB on-the-fly for better Kobo experience. #### Progress Sync Books downloaded via OPDS automatically sync progress: 1. Download a book via OPDS 2. Start reading on your Kobo -3. Progress syncs to Bookmann automatically +3. Progress syncs to Bookhoard automatically 4. Continue reading on any other device! #### Collection to Shelf Mapping -Bookmann maps your collections to Kobo shelves: +Bookhoard maps your collections to Kobo shelves: - Collection **"Science Fiction"** → Kobo shelf **"Sci-Fi"** - Collection **"To Read"** → Kobo shelf **"To Read"** -- Customizable in Bookmann Device Management +- Customizable in Bookhoard Device Management ### OPDS Troubleshooting #### Catalog Not Appearing -**Problem**: Bookmann catalog doesn't show in Kobo store +**Problem**: Bookhoard catalog doesn't show in Kobo store **Solutions**: 1. Verify OPDS URL is correct in config file 2. Check Kobo is connected to Wi-Fi 3. Try accessing OPDS URL in your browser -4. Ensure device ID matches Bookmann device ID +4. Ensure device ID matches Bookhoard device ID 5. Restart Kobo after editing config file #### Download Fails @@ -295,10 +295,10 @@ Bookmann maps your collections to Kobo shelves: **Solutions**: 1. Check Wi-Fi signal strength -2. Ensure Bookmann server is running -3. Verify book file exists in Bookmann library +2. Ensure Bookhoard server is running +3. Verify book file exists in Bookhoard library 4. Try downloading a smaller book first -5. Check Bookmann logs for errors +5. Check Bookhoard logs for errors #### Book Downloads But Won't Open @@ -306,7 +306,7 @@ Bookmann maps your collections to Kobo shelves: **Solutions**: 1. Verify book format is supported (EPUB/KEPUB/PDF) -2. Check file isn't corrupted in Bookmann +2. Check file isn't corrupted in Bookhoard 3. Try downloading via USB and opening 4. Check Kobo has sufficient free storage 5. Restart your Kobo device @@ -339,7 +339,7 @@ Bookmann maps your collections to Kobo shelves: #### Custom Catalog Name -Change the name of the Bookmann catalog on your Kobo: +Change the name of the Bookhoard catalog on your Kobo: ```ini [OPDS] @@ -367,7 +367,7 @@ PreferredFormat=kepub # Options: epub, kepub, auto ## Sync Frequency Options -Configure how often Kobo syncs with Bookmann: +Configure how often Kobo syncs with Bookhoard: ```ini [Sync] @@ -404,7 +404,7 @@ KoboStoreSyncDisabled=true ### Custom Sync URL -If you're running Bookmann with a custom domain or port: +If you're running Bookhoard with a custom domain or port: ```ini [Sync] @@ -420,7 +420,7 @@ ServerURL=http://localhost:8765/api/sync/kobo ### HTTPS Configuration -If you have SSL/TLS configured on Bookmann: +If you have SSL/TLS configured on Bookhoard: ```ini [Sync] @@ -440,18 +440,18 @@ Kobo will automatically trust the certificate if properly configured. 2. Verify `AutoSyncEnabled=true` in config 3. Check `SyncFrequency` is not set to 0 4. Test with manual sync first -5. Check Bookmann logs for connection attempts +5. Check Bookhoard logs for connection attempts ### Connection Refused **Problem**: "Connection refused" or "Server not reachable" **Solutions**: -1. Verify Bookmann is running on your computer +1. Verify Bookhoard is running on your computer 2. Check the server URL and IP address are correct 3. Ensure Kobo is on same Wi-Fi network as computer 4. Temporarily disable firewall to test -5. Try accessing Bookmann URL in your browser first +5. Try accessing Bookhoard URL in your browser first ### Authentication Failed @@ -460,7 +460,7 @@ Kobo will automatically trust the certificate if properly configured. **Solutions**: 1. Verify username and password in config file 2. Check your account is active and not locked -3. Try logging in to Bookmann web interface +3. Try logging in to Bookhoard web interface 4. Ensure password doesn't contain special characters that need escaping 5. Reset password if needed @@ -484,17 +484,17 @@ Kobo will automatically trust the certificate if properly configured. 2. Check `SyncFrequency` is not 0 3. Kobo only syncs when connected to Wi-Fi 4. Some Kobo models require Wi-Fi to be manually connected -5. Check Bookmann device management page for connection errors +5. Check Bookhoard device management page for connection errors ### Books Not Appearing in Kobo -**Problem**: Books added to Bookmann don't show on Kobo +**Problem**: Books added to Bookhoard don't show on Kobo **Solutions**: 1. Kobo needs books to be sideloaded (manually transferred via USB) -2. Bookmann syncs PROGRESS, not book files +2. Bookhoard syncs PROGRESS, not book files 3. Transfer book files to Kobo's `Documents` folder via USB -4. Kobo will then sync progress for those books with Bookmann +4. Kobo will then sync progress for those books with Bookhoard 5. Check that book formats are supported by Kobo ### Conflicts Not Showing @@ -502,7 +502,7 @@ Kobo will automatically trust the certificate if properly configured. **Problem**: Conflicts between devices aren't being detected **Solutions**: -1. Check Bookmann Conflicts page +1. Check Bookhoard Conflicts page 2. Ensure both devices have synced recently 3. Conflicts only detected when progress differs within 5 minutes 4. Manually sync both devices to trigger conflict detection @@ -510,8 +510,8 @@ Kobo will automatically trust the certificate if properly configured. ## Security Best Practices -1. **Use HTTPS**: If deploying Bookmann publicly, configure SSL/TLS -2. **Strong Password**: Use a secure password for your Bookmann account +1. **Use HTTPS**: If deploying Bookhoard publicly, configure SSL/TLS +2. **Strong Password**: Use a secure password for your Bookhoard account 3. **Network Security**: Ensure your Wi-Fi network is secure (WPA2/WPA3) 4. **Regular Updates**: Keep Kobo firmware updated 5. **Device Authorization**: Only approve devices you recognize @@ -520,17 +520,17 @@ Kobo will automatically trust the certificate if properly configured. ### Local Network (Recommended) -For home use, keep Kobo and Bookmann on the same local network: +For home use, keep Kobo and Bookhoard on the same local network: ``` Kobo Wi-Fi: 192.168.1.x -Bookmann: 192.168.1.x +Bookhoard: 192.168.1.x ``` ### Remote Access For access outside your home network: 1. Set up port forwarding on your router (port 8765) -2. Configure SSL/TLS on Bookmann +2. Configure SSL/TLS on Bookhoard 3. Use a dynamic DNS service for constant hostname 4. Update Kobo config with public URL: ```ini @@ -553,30 +553,30 @@ To extend Kobo battery life: To improve sync speed: 1. Ensure strong Wi-Fi signal 2. Use local network (not remote access) -3. Keep Bookmann and Kobo on same network +3. Keep Bookhoard and Kobo on same network 4. Close other apps using Wi-Fi bandwidth 5. Reduce number of books syncing at once ## Additional Resources - [Kobo Developer Documentation](https://help.kobo.com/hc/en-us) -- [Bookmann Universal Sync Guide](UNIVERSAL_SYNC_IMPLEMENTATION_GUIDE.md) +- [Bookhoard Universal Sync Guide](UNIVERSAL_SYNC_IMPLEMENTATION_GUIDE.md) - [KOReader Setup Guide](KOBOREADER_SETUP.md) -- [Bookmann API Reference](API_REFERENCE.md) +- [Bookhoard API Reference](API_REFERENCE.md) ## FAQ **Q: Can I sync books (files) between devices?** -A: No, Bookmann only syncs reading progress and annotations. You must sideload book files to each device manually. +A: No, Bookhoard only syncs reading progress and annotations. You must sideload book files to each device manually. -**Q: Will Kobo update automatically when I add books in Bookmann?** -A: No, Kobo doesn't fetch book files from Bookmann. You must transfer books via USB. +**Q: Will Kobo update automatically when I add books in Bookhoard?** +A: No, Kobo doesn't fetch book files from Bookhoard. You must transfer books via USB. **Q: Can I use both Kobo Sync and Calibre?** A: Yes, but they may conflict. It's recommended to choose one sync method. **Q: What happens if I read the same book on Kobo and KOReader?** -A: Bookmann will detect conflicts and you can resolve them in the Conflicts UI. +A: Bookhoard will detect conflicts and you can resolve them in the Conflicts UI. **Q: Does Kobo sync when in sleep mode?** A: Only if Wi-Fi is enabled and configured to stay active during sleep. @@ -586,12 +586,12 @@ A: Only if Wi-Fi is enabled and configured to stay active during sleep. If you encounter issues: 1. Check the troubleshooting section above 2. Review Kobo sync logs in device settings -3. Check Bookmann sync queue and device management pages +3. Check Bookhoard sync queue and device management pages 4. Verify your configuration file is saved correctly -5. Open an issue on the Bookmann GitHub repository +5. Open an issue on the Bookhoard GitHub repository --- **Last Updated**: 2026-01-31 -**Bookmann Version**: 1.0 +**Bookhoard Version**: 1.0 **Kobo Firmware**: 4.30.0+ diff --git a/docs/devices/KOREADER_SETUP.md b/docs/devices/KOREADER_SETUP.md index 9aef6c0..9039e59 100644 --- a/docs/devices/KOREADER_SETUP.md +++ b/docs/devices/KOREADER_SETUP.md @@ -1,6 +1,6 @@ # KOReader Device Setup Guide -This guide will help you set up KOReader on your e-reader device to sync with Bookmann. +This guide will help you set up KOReader on your e-reader device to sync with Bookhoard. ## What is KOReader? @@ -13,10 +13,10 @@ KOReader is an open-source e-reader application that supports a wide range of e- ## Prerequisites Before you begin, make sure you have: -- ✅ A Bookmann instance running and accessible on your network -- ✅ Your Bookmann credentials (username and password) +- ✅ A Bookhoard instance running and accessible on your network +- ✅ Your Bookhoard credentials (username and password) - ✅ A KOReader-compatible e-reader device -- ✅ Your device connected to the same Wi-Fi network as your Bookmann instance +- ✅ Your device connected to the same Wi-Fi network as your Bookhoard instance ## Installation @@ -64,16 +64,16 @@ Before you begin, make sure you have: ## Device Registration -### Step 1: Get Your Bookmann Instance URL +### Step 1: Get Your Bookhoard Instance URL -Find your Bookmann instance URL. This will typically be one of: +Find your Bookhoard instance URL. This will typically be one of: - **Local Network**: `http://YOUR_COMPUTER_IP:8765` - **Localhost (if testing)**: `http://localhost:8765` - **Domain (if configured)**: `https://bookmann.yourdomain.com` -### Step 2: Register Your Device in Bookmann +### Step 2: Register Your Device in Bookhoard -1. Log in to your Bookmann web interface +1. Log in to your Bookhoard web interface 2. Navigate to **Device Management** → **Add New Device** 3. Fill in the device details: - **Device Name**: A friendly name (e.g., "My Kindle Paperwhite") @@ -97,7 +97,7 @@ You'll receive: 2. **Method B: Manual URL** - Copy the Auth URL from the registration confirmation - Open it in your web browser - - Log in to your Bookmann account + - Log in to your Bookhoard account - Click **Approve Device** Your device is now registered and ready to sync! @@ -113,7 +113,7 @@ Your device is now registered and ready to sync! ### Step 2: Configure Wireless Connection 1. **Enable Calibre Wireless Connection**: Toggle ON -2. **Server Address**: Enter your Bookmann instance URL +2. **Server Address**: Enter your Bookhoard instance URL ``` http://YOUR_COMPUTER_IP:8765/api/sync/koreader ``` @@ -124,8 +124,8 @@ Your device is now registered and ready to sync! ### Step 3: Configure Authentication 1. **Authentication Method**: Select "Basic Auth" -2. **Username**: Your Bookmann email or username -3. **Password**: Your Bookmann password +2. **Username**: Your Bookhoard email or username +3. **Password**: Your Bookhoard password ### Step 4: Configure Sync Settings @@ -149,7 +149,7 @@ Your device is now registered and ready to sync! 3. If it fails: - Verify your device is connected to Wi-Fi - Check the server URL is correct - - Ensure your Bookmann instance is running + - Ensure your Bookhoard instance is running - Verify username and password are correct ## Using Sync Features @@ -157,7 +157,7 @@ Your device is now registered and ready to sync! ### Initial Sync When you first enable sync, KOReader will: -1. Connect to Bookmann +1. Connect to Bookhoard 2. Upload your current reading progress 3. Download any annotations from the server 4. Set up bidirectional sync for future changes @@ -216,7 +216,7 @@ Enable debug logging if sync isn't working: ### What is OPDS? -OPDS (Open Publication Distribution System) allows your KOReader device to **wirelessly download books** from Bookmann - no USB cable needed! +OPDS (Open Publication Distribution System) allows your KOReader device to **wirelessly download books** from Bookhoard - no USB cable needed! ### OPDS Benefits @@ -230,7 +230,7 @@ OPDS (Open Publication Distribution System) allows your KOReader device to **wir #### Step 1: Get Your OPDS URL -1. Log in to Bookmann web interface +1. Log in to Bookhoard web interface 2. Go to **Device Management** 3. Find your registered KOReader device 4. Click **Show OPDS URL** @@ -242,17 +242,17 @@ OPDS (Open Publication Distribution System) allows your KOReader device to **wir 2. Tap the **+** (plus) button on the home screen 3. Select **OPDS Catalog** 4. Enter catalog details: - - **Name**: Bookmann (or any name you prefer) + - **Name**: Bookhoard (or any name you prefer) - **URL**: Paste your OPDS URL from Step 1 5. Tap **Save** -Your Bookmann library now appears in KOReader's home screen! +Your Bookhoard library now appears in KOReader's home screen! ### Browse and Download Books #### Browse Your Library -1. Tap **Bookmann** on KOReader home screen +1. Tap **Bookhoard** on KOReader home screen 2. You'll see: - **All Books**: Complete library view - **Collections**: Books organized by collections @@ -269,7 +269,7 @@ Your Bookmann library now appears in KOReader's home screen! #### Download Entire Collections -1. In Bookmann catalog, tap **Collections** +1. In Bookhoard catalog, tap **Collections** 2. Select a collection 3. Tap **Download All** to get all books 4. Downloads queue and process in background @@ -291,12 +291,12 @@ KOReader OPDS supports: Books downloaded via OPDS are automatically matched: - Uses SHA-256 hashes for precise matching - Falls back to title/author matching -- Links to your existing Bookmann library +- Links to your existing Bookhoard library - Progress syncs automatically #### Collection Integration -Your Bookmann collections appear in KOReader: +Your Bookhoard collections appear in KOReader: - Collection **"To Read"** → KOReader category - Collection **"Science Fiction"** → Browseable section - Custom collections → Preserved organization @@ -329,14 +329,14 @@ Automatically download new books from collections: #### Catalog Not Loading -**Problem**: Bookmann catalog shows error or won't load +**Problem**: Bookhoard catalog shows error or won't load **Solutions**: 1. Verify device is connected to Wi-Fi 2. Check OPDS URL is correct in settings 3. Try accessing OPDS URL in your browser -4. Ensure Bookmann server is running -5. Check Bookmann device is approved +4. Ensure Bookhoard server is running +5. Check Bookhoard device is approved #### Download Fails @@ -346,19 +346,19 @@ Automatically download new books from collections: 1. Check Wi-Fi signal strength 2. Ensure sufficient storage on device 3. Try downloading a smaller book -4. Check Bookmann has the book file -5. Review Bookmann logs for errors +4. Check Bookhoard has the book file +5. Review Bookhoard logs for errors #### Book Opens But Progress Doesn't Sync **Problem**: Downloaded book doesn't sync progress **Solutions**: -1. Verify book is matched to Bookmann library +1. Verify book is matched to Bookhoard library 2. Check device sync settings are enabled 3. Try manual sync from device -4. Ensure book exists in Bookmann with same hash -5. Check Bookmann Progress page +4. Ensure book exists in Bookhoard with same hash +5. Check Bookhoard Progress page #### Slow Downloads @@ -384,9 +384,9 @@ OPDSUserAgent = "KOReader/2024.01" #### Authentication Token -If Bookmann requires token authentication: +If Bookhoard requires token authentication: -1. Get token from Bookmann device settings +1. Get token from Bookhoard device settings 2. Add to OPDS URL: `?token=YOUR_TOKEN` 3. KOReader includes token in all requests @@ -427,7 +427,7 @@ OPDSCompressionEnabled = true **Problem**: "Connection refused" error **Solutions**: -- Verify Bookmann is running on your computer +- Verify Bookhoard is running on your computer - Check the server URL and port (8765) - Ensure device is on same Wi-Fi network - Try using your computer's IP address instead of "localhost" @@ -439,26 +439,26 @@ OPDSCompressionEnabled = true **Solutions**: - Verify username and password - Check your account is active and not locked -- Try logging in to Bookmann web interface first +- Try logging in to Bookhoard web interface first - Reset password if needed ### Sync Not Working -**Problem**: Changes not appearing in Bookmann +**Problem**: Changes not appearing in Bookhoard **Solutions**: - Enable debug logging in KOReader -- Check Bookmann Device Management page for errors +- Check Bookhoard Device Management page for errors - Verify sync is enabled in KOReader settings - Try manual sync to trigger immediate update -- Check Bookmann logs for sync errors +- Check Bookhoard logs for sync errors ### Conflicts Detected **Problem**: Sync conflicts when reading on multiple devices **Solutions**: -1. Go to Bookmann **Conflicts** page +1. Go to Bookhoard **Conflicts** page 2. Review conflicting progress from each device 3. Choose which device's progress to keep 4. Set auto-resolution preference for future conflicts @@ -468,15 +468,15 @@ OPDSCompressionEnabled = true **Problem**: Large annotations or highlights fail to sync **Solutions**: -- Check Bookmann sync queue for stuck items +- Check Bookhoard sync queue for stuck items - Increase sync timeout in KOReader settings - Break up large highlights into smaller segments - Verify network bandwidth is sufficient ## Security Best Practices -1. **Use HTTPS**: If deploying Bookmann publicly, configure SSL/TLS -2. **Strong Password**: Use a secure password for your Bookmann account +1. **Use HTTPS**: If deploying Bookhoard publicly, configure SSL/TLS +2. **Strong Password**: Use a secure password for your Bookhoard account 3. **Network Security**: Ensure your Wi-Fi network is secure (WPA2/WPA3) 4. **Device Authorization**: Only approve devices you recognize 5. **Regular Updates**: Keep KOReader updated to the latest version @@ -485,7 +485,7 @@ OPDSCompressionEnabled = true - [KOReader Documentation](https://github.com/koreader/koreader) - [KOReader Forum](https://www.mobileread.com/forums/forumdisplay.php?f=271) -- [Bookmann Universal Sync Guide](UNIVERSAL_SYNC_IMPLEMENTATION_GUIDE.md) +- [Bookhoard Universal Sync Guide](UNIVERSAL_SYNC_IMPLEMENTATION_GUIDE.md) - [Kobo Setup Guide](KOBO_SETUP.md) ## Support @@ -493,11 +493,11 @@ OPDSCompressionEnabled = true If you encounter issues: 1. Check the troubleshooting section above 2. Enable debug logging and review KOReader logs -3. Check Bookmann sync queue and device management pages -4. Open an issue on the Bookmann GitHub repository +3. Check Bookhoard sync queue and device management pages +4. Open an issue on the Bookhoard GitHub repository --- **Last Updated**: 2026-01-31 -**Bookmann Version**: 1.0 +**Bookhoard Version**: 1.0 **KOReader Version**: 2024.01+