patrick ead43b2562
ci / backend (push) Failing after 3m3s
ci / frontend (push) Successful in 2m2s
fix: download every selected book, not just the last
The frontend built book_ids with `set` rather than `append`, so the archive
only ever held one book. The proxy also sent an empty Content-Length, which
is not valid HTTP/1.1, and buffered the whole zip before forwarding a byte
of it.

Entries now carry the file's own name, suffixed when two books claim the
same one, and the books are resolved before the stream starts so a miss is
a 404 instead of a truncated archive under a 200.
2026-09-14 11:04:47 -04:00
2026-08-11 21:59:33 -04:00
2026-08-17 13:38:44 -04:00
2026-08-17 20:56:24 -04:00
2025-12-04 00:33:37 -05:00

Chitai - eBook Library Management

eBook library management application.

  • Backend built with Python and Litestar
  • Frontend built with Svelte 5 and SvelteKit
Library Home Page

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 .env file.

Installation (Production Deployment)

  1. Clone the repository: git clone https://git.jaroszew.ski/patrick/chitai.git
  2. Navigate to the project root: cd chitai
  3. Copy the example environment file: cp .env.prod-example .env
  4. Edit .env. At minimum set CHITAI_TOKEN_SECRET to something random, and set CHITAI_ORIGIN to the URL you will reach the app on — logging in fails with a 403 if it does not match. Pin CHITAI_VERSION to a release tag if you would rather not track latest.
  5. Pull the released images: docker compose pull
  6. Run the Docker containers in detached mode: docker compose up -d
  7. Access the frontend at: http://localhost:3000/

To build the images from source instead of pulling them, run docker compose build in place of step 5.

Development

NixOS Development Environment

To utilize the NixOS development environment:

  1. Navigate to the project root in your terminal: cd chitai
  2. Enter the Nix shell: nix-shell

Docker development containers are planned for a future release.

S
Description
A self-hosted eBook management application, with OPDS support and built-in EPUB and PDF readers.
Readme GPL-3.0
39 MiB
Languages
Python 52.7%
Svelte 33%
TypeScript 12.5%
Shell 0.5%
CSS 0.4%
Other 0.9%