GitHub - codebude/librislog: Just a book tracker. (original) (raw)
๐ Full Documentation ยท Quick Start ยท API Reference ยท Nightly Docs
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
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
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.
- Third-party integrations. Display your stats on Dashy, Home Assistant, or Homepage dashboards and more. See all integrations โ
- Lightweight. Two Docker containers, one SQLite database.
- Multi-language UI. English, German, Spanish, French, and Chinese (Simplified) โ 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 for details.
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 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