ee46f5568c21b34b1f668d3cded56597f90908e5
The load function read progress.epub_loc and progress.progress, neither of
which BookProgressRead carries, so resuming never worked and every open
started at page one. Read epub_cfi and percentage instead.
Fail loudly when the book cannot be fetched. The previous version caught
everything and returned {status, error} that nothing consumed, so a missing
book produced a reader sitting on its spinner forever. Check response.ok
before parsing too: fetch resolves on a 404, and arrayBuffer() happily
returns the error page, which only surfaced later as an opaque epub parse
error.
Give the reader a working sidebar, a theme that survives the book's own
CSS, and an error state with a retry. The theme is registered rather than
applied as bare overrides because most EPUBs ship their own body colours
and win otherwise, which is why the page stayed white against a dark UI.
Chitai - eBook Library Management
eBook library management application.
- Backend built with Python and Litestar
- Frontend built with Svelte 5 and SvelteKit
Key Features
- Libraries: Organize your eBooks into customizable libraries.
- Book Upload: Easily upload eBook files in common formats, with automatic metadata extraction.
- Personalized Bookshelves: Create and manage custom bookshelves (lists) within your libraries to categorize your eBooks.
- Built-in Readers: Integrated readers for EPUB and PDF files.
- Progress Tracking: Monitor your reading progress within each book.
- Search Functionality: Quickly find books based on title.
Getting Started
Prerequisites
- Docker
- Docker Compose
- (Optional) A text editor for modifying the
.envfile.
Installation (Production Deployment)
- Clone the repository:
git clone <repository_url>(Replace<repository_url>with the actual URL) - Navigate to the project root:
cd chitai - Build the Docker images:
docker compose build - Copy the example environment file and configure:
cp .env.prod-example .env - Run the Docker containers in detached mode:
docker compose up -d - Access the frontend at:
http://localhost:3000/
Development
NixOS Development Environment
To utilize the NixOS development environment:
- Navigate to the project root in your terminal:
cd chitai - Enter the Nix shell:
nix-shell
Docker development containers are planned for a future release.
Languages
Python
52.7%
Svelte
33%
TypeScript
12.5%
Shell
0.5%
CSS
0.4%
Other
0.9%