dd65e348694b9b73884d5eeee2c6e57eb4ab2dd7
foliate-js has no npm release and no build step; upstream recommends a git submodule. Copy it instead: this repo has no submodules and already vendors pdf.js the same way under static/pdfjs, and a submodule would pull in 231 files / 13 MB of which 191 files / 12 MB is a bundled pdf.js build that Chitai does not use. Only the import closure reachable from view.js is vendored — 15 files, 584K. pdf.js is replaced by a stub that throws: view.js reaches it through a static-string dynamic import inside makeBook, which Rollup resolves at build time even though Chitai serves PDFs from static/pdfjs/web/viewer.html, and upstream's version opens with a bare `import '@pdfjs/pdf.min.mjs'` that does not resolve here. scripts/vendor-foliate.sh pins the commit and makes the next update a one-line change. fixed-layout.js needs construct-style-sheets-polyfill, so add it.
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%