An open API service indexing awesome lists of open source software.

https://github.com/codebude/librislog

Just a book tracker.
https://github.com/codebude/librislog

book-tracker books reading-time reading-tracker self-hosted selfhosted

Last synced: 1 day ago
JSON representation

Just a book tracker.

Awesome Lists containing this project

README

          

# LibrisLog


๐Ÿ“š Full Documentation
ย ยทย 
Quick Start
ย ยทย 
API Reference
ย ยทย 
Nightly Docs


Tests
Docker Build
Docs Build
Python
Svelte
FastAPI
License

**Multi-user book tracking webapp** โ€” maintain four reading lists, import books from Open Library & Google Books, scrape cover art, and get rich reading analytics โ€” all on your own hardware.

> `docker compose up -d` โ†’ full data ownership, no vendor lock-in, no API keys required.

---

## Quick Start

```bash
mkdir librislog && cd librislog
curl -O https://raw.githubusercontent.com/codebude/librislog/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/codebude/librislog/main/.env.example
cp .env.example .env
# generate a random secret key
sed -i "s/CHANGE_ME_TO_32PLUS_CHARS/$(openssl rand -base64 32)/" .env
docker compose up -d
```

Open **http://localhost:8001** and create your account.

---

## Screenshots


Dashboard
Library
Statistics


Reading Progress
Book Import
Administration

---

## Why LibrisLog?

- **Your data, your rules.** Fully self-hosted under MIT license โ€” no ads, no tracking, no vendor lock-in. A single SQLite file you can back up anytime.
- **No API keys required.** Works with Open Library out of the box. Add Google Books or Hardcover.app tokens optionally for richer search results.
- **Rich insights from day one.** Calendar heatmap, language/status/page distribution charts, books finished per month/year, top authors โ€” all on your hardware.
- **Multi-user from the start.** User roles (admin/user), optional OIDC SSO, per-user libraries. One instance works for your whole household or small group.
- **Import any format you have.** Goodreads CSV with automatic field mapping, generic CSV with per-field Python transforms, JSON, ZIP with covers.
- **Point your phone at an ISBN barcode.** Real-time barcode scanning in the browser โ€” no native app required.
- **Cover art from multiple sources.** Automatic search across AbeBooks, Open Library, Amazon, and Hardcover โ€” plus manual upload or URL paste.
- **Full REST API.** OpenAPI-documented backend you can script against โ€” build your own frontend, connect home automation, or pipe data into your own tools.
- **Lightweight.** Two Docker containers, one SQLite database.
- **Bilingual UI.** English and German with a localization framework ready for more languages.

---

## Features

- **Library** โ€” Grid/list view, search and sort, four reading statuses (Want to Read, Currently Reading, Read, Did Not Finish)
- **Reading progress** โ€” Page-level slider, full progress timeline per book with edit/history
- **Statistics dashboard** โ€” Calendar heatmap, distribution charts, books finished per period, top authors
- **Book import** โ€” Search Open Library, Google Books, Hardcover.app. Scan ISBN barcodes on mobile. Manual entry for anything not found
- **Data portability** โ€” Export as JSON, CSV, or ZIP with covers. Import from Goodreads or any CSV with custom field mapping
- **Cover management** โ€” Automatic multi-source cover search with manual override, URL paste, or file upload
- **Data hygiene** โ€” Find and fix missing metadata (covers, page counts, authors) in bulk
- **Multi-user** โ€” Admin/user roles, per-user libraries, optional OIDC login
- **Themes** โ€” Light, dark, and custom DaisyUI themes with persistent preferences
- **Administration** โ€” Full backup/restore of the SQLite database, user management, API key management

---

## API

The backend is a standalone FastAPI application. The full API is documented via Swagger UI at `/api/docs` when the server is running.

Create API keys from the web UI (Profile โ†’ API Keys) for headless access. See the [API Reference](https://codebude.github.io/librislog/api/) for details.

```bash
cd backend
uv sync
uv run alembic upgrade head
uv run uvicorn app.main:app --reload
```

---

## Stack

| Layer | Technology |
|---|---|
| **Backend** | FastAPI, SQLModel, SQLite, Alembic, Pydantic v2 |
| **Frontend** | Svelte 5, SvelteKit, Tailwind CSS v4, DaisyUI v5 |
| **Auth** | Session cookies, optional OIDC (Authlib) |
| **Deployment** | Docker, Docker Compose |
| **Package managers** | `uv` (Python), `npm` (Node) |
| **Testing** | pytest + pytest-cov (backend), Vitest + Testing Library (frontend), Playwright (E2E) |

---

## Contributing

See the [Developer Setup](https://codebude.github.io/librislog/guide/developer-setup) guide for instructions on running LibrisLog locally, running tests, and using the CLI tool.

This project was developed with the assistance of AI coding tools under a human-supervised workflow. No AI-generated code is committed without human review and approval.

## License

MIT

## Star History





Star History Chart