docs: update comprehensive API documentation and project guides
This commit updates all documentation files throughout the project: - Updated IMPLEMENTATION_PLAN.md with new implementation details - Updated PROJECT_GUIDELINES.md with coding standards and practices - Updated README.md with current project information - Updated SCREENSHOT_AUTOMATION.md with new automation details - Added TEST_DATA.md with test fixtures data - Updated cover_image_serving_plan.md with static URL patterns Documentation API updates: - Updated API reference documentation for all endpoints including: - Authentication (login, logout, register, refresh_token) - Book matching (auto_link, bulk_link, link_book, search) - Collections (CRUD operations, shelf mappings, auto-assign rules) - Conflicts (bulk operations, resolve/dismiss) - Devices (registration, approval, shelf management) - Highlights (create, update, delete, get) - Kobo sync (bookmark, markup, initialization, sync) - KOReader sync (library, metadata, bookmarks, progress) - Libraries (CRUD, folders, media items, stats) - Media items (bulk operations, CRUD) - Notes (CRUD operations) - OPDS (acquisition, feeds, publication) - Progress (reading progress tracking) - Queue (device queue management) - Ratings (star ratings) - Scanner (watch mode, scan operations) - Sync protocols (Kobo, KOReader) - Users (profile, password, admin operations) - WebSocket protocols - Updated user guides (admin, dashboard, settings, sync) - Updated device setup guides (Kobo, KOReader) - Updated developer guides (testing, contributing, operations) - Updated scripts/README.md
This commit is contained in:
@@ -9,6 +9,7 @@ This guide addresses common issues when deploying and running Bookhoard on diffe
|
||||
**Issue:** Missing or incorrect `.env` file
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# 1. Copy the example file
|
||||
cp .env.example .env
|
||||
@@ -36,6 +37,7 @@ DBPASS="your-secure-database-password" # Strong password
|
||||
**Issue:** Port 8765 already in use
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check what's using the port
|
||||
lsof -i :8765
|
||||
@@ -52,6 +54,7 @@ SERVER_PORT=8766
|
||||
**Issue:** Container runtime compatibility
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Podman is recommended (podman-compose works with docker-compose.yml)
|
||||
# Install podman-compose:
|
||||
@@ -72,6 +75,7 @@ docker compose up -d
|
||||
**Issue:** PostgreSQL fails on foreign key constraints
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Clean database volume and restart:
|
||||
# Podman:
|
||||
@@ -93,6 +97,7 @@ podman-compose logs db # or: docker compose logs db
|
||||
**Issue:** `sqlc` or `templ` not in PATH
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Ensure Go tools are installed correctly
|
||||
go version # Should be 1.25+
|
||||
@@ -108,6 +113,7 @@ podman-compose build --no-cache # or: docker compose build --no-cache
|
||||
**Issue:** KEPUB conversion fails or cache problems
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check cache directory exists and is writable
|
||||
ls -la /var/bookhoard/cache/kepub
|
||||
@@ -133,6 +139,7 @@ grep BOOKHOARD_CONVERSION .env
|
||||
**Issue:** Different OS architectures (ARM vs x86)
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check current architecture
|
||||
uname -m
|
||||
@@ -152,6 +159,7 @@ FROM golang:1.25-alpine AS builder
|
||||
**Issue:** Can't connect to localhost
|
||||
|
||||
**Solution:**
|
||||
|
||||
```bash
|
||||
# Check if containers are running:
|
||||
podman-compose ps # or: docker compose ps
|
||||
@@ -169,6 +177,7 @@ curl -s http://SERVER_IP:8765/api/libraries/visible
|
||||
## 🚀 Quick Verification
|
||||
|
||||
### Basic Health Checks:
|
||||
|
||||
```bash
|
||||
# Check container status
|
||||
podman-compose ps # or: docker compose ps
|
||||
@@ -184,6 +193,7 @@ docker compose logs app
|
||||
```
|
||||
|
||||
### First-Time Setup:
|
||||
|
||||
```bash
|
||||
# 1. Clone repository
|
||||
git clone <repository-url>
|
||||
@@ -205,6 +215,7 @@ curl -s http://localhost:8765/api/libraries/visible
|
||||
## 🌐 Production Deployment
|
||||
|
||||
### Environment Variables:
|
||||
|
||||
```bash
|
||||
# Required production variables
|
||||
export JWT_SECRET="your-production-jwt-secret"
|
||||
@@ -220,6 +231,7 @@ docker compose -f docker-compose.yml -f docker-compose.prod.yml build
|
||||
## 📋 Debugging Steps
|
||||
|
||||
### Check Application Logs:
|
||||
|
||||
```bash
|
||||
# Application logs:
|
||||
docker compose logs app
|
||||
@@ -232,6 +244,7 @@ docker compose logs -f app
|
||||
```
|
||||
|
||||
### Check Database Schema:
|
||||
|
||||
```bash
|
||||
# Connect to database:
|
||||
docker compose exec db psql -U postgres -d bookhoard
|
||||
@@ -258,6 +271,7 @@ WHERE tc.table_schema = 'public';
|
||||
```
|
||||
|
||||
### Test New Features:
|
||||
|
||||
```bash
|
||||
# Test notes API:
|
||||
curl -s -H "Authorization: Bearer YOUR_TOKEN" \
|
||||
@@ -273,24 +287,28 @@ curl -s -H "Authorization: Bearer YOUR_TOKEN" \
|
||||
The current setup follows best practices:
|
||||
|
||||
### ✅ **Containerization**
|
||||
|
||||
- Multi-stage Docker builds for smaller images
|
||||
- Separate database and application containers
|
||||
- Proper volume mounting for data persistence
|
||||
- Health checks for service dependencies
|
||||
|
||||
### ✅ **Database Design**
|
||||
|
||||
- PostgreSQL with proper foreign key constraints
|
||||
- Cascade deletes for data integrity
|
||||
- Indexed for performance
|
||||
- pgx v5 compatibility
|
||||
|
||||
### ✅ **API Design**
|
||||
|
||||
- RESTful endpoints following standards
|
||||
- JWT-based authentication
|
||||
- Proper HTTP status codes
|
||||
- Comprehensive error handling
|
||||
|
||||
### ✅ **Build Process**
|
||||
|
||||
- Go modules with vendoring support
|
||||
- SQL code generation with sqlc
|
||||
- Template generation with templ
|
||||
@@ -323,6 +341,7 @@ The highlights and notes functionality provides:
|
||||
## 🆘 When All Else Fails
|
||||
|
||||
### Last Resort Steps:
|
||||
|
||||
1. **Check this guide** for common solutions
|
||||
2. **Verify environment variables** are set correctly
|
||||
3. **Ensure no port conflicts** on the target machine
|
||||
@@ -331,9 +350,10 @@ The highlights and notes functionality provides:
|
||||
6. **Test incrementally** - Start with basic setup, then add complexity
|
||||
|
||||
### Get Help:
|
||||
|
||||
- **Check GitHub Issues** for known problems
|
||||
- **Verify Docker version** compatibility
|
||||
- **Test with minimal setup** before adding customizations
|
||||
- **Check system resources** (memory, disk space)
|
||||
|
||||
The system is designed to be robust and should work across different platforms with minimal configuration.
|
||||
The system is designed to be robust and should work across different platforms with minimal configuration.
|
||||
|
||||
Reference in New Issue
Block a user