# Chitai - eBook Library Management

eBook library management application.

- Backend built with Python and Litestar
- Frontend built with Svelte 5 and SvelteKit

<img src="docs/screenshots/library-home.png" width="80%" alt="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.
