https://github.com/abfcode/librium
Web-based personal ebook library and reader focused on EPUBs. Built with React and Spring Boot.
https://github.com/abfcode/librium
digital-library ebook-reader epub java postgresql react spring-boot tailwindcss typescript web-application
Last synced: 5 months ago
JSON representation
Web-based personal ebook library and reader focused on EPUBs. Built with React and Spring Boot.
- Host: GitHub
- URL: https://github.com/abfcode/librium
- Owner: ABFCode
- License: apache-2.0
- Created: 2025-02-04T17:07:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-25T00:52:57.000Z (5 months ago)
- Last Synced: 2026-01-25T09:09:27.427Z (5 months ago)
- Topics: digital-library, ebook-reader, epub, java, postgresql, react, spring-boot, tailwindcss, typescript, web-application
- Language: Java
- Homepage:
- Size: 2.64 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Librium — Personal Ebook Library & Reader
Librium is a performance‑focused web app for uploading, managing, and reading your personal EPUB library. It’s built as a modern, real‑time stack with a dedicated parser service.
## Stack
* **Web app:** TanStack Start + React 19 + Vite + Tailwind (`/web`)
* **Data/Auth:** Convex (with Better Auth) (`/web/convex`)
* **Parser:** Go microservice using Spine for EPUB parsing (`/parser`)
* **Storage:** Convex Storage (EPUBs, section text, and assets)
## Features (current)
* **Auth:** Email/password sign‑in + sign‑up
* **Import:** Upload EPUBs, async parsing + ingest
* **Library:** Covers, title/author, download, delete
* **Reader:** TOC, next/prev, arrow keys, bookmarks, search
* **Reader prefs:** Font size, line height, content width, theme
* **Progress:** Remembers last section + scroll position
## Quick start (dev)
1) Install dependencies:
```
cd web
pnpm install
```
2) Install Playwright browsers (for UI tests):
```
cd web
pnpm exec playwright install
```
If Playwright reports missing system libraries on Linux, run:
```
cd web
npx playwright install-deps
```
3) Start the parser:
```
cd parser
go run ./main.go
```
4) Start Convex:
```
cd web
pnpm convex dev
```
5) Start the web app:
```
cd web
pnpm dev
```
The parser defaults to `http://localhost:8081/parse`. Override with `PARSER_URL` if needed.
## Resetting dev data
```
make convex-reset CONFIRM=RESET
```
## Tests
```
cd web
pnpm test
```
Browser tests run headless by default in CI. To see the browser locally:
```
cd web
VITEST_BROWSER_HEADLESS=false pnpm test:watch
```
To run only browser or node tests:
```
cd web
pnpm test:browser
pnpm test:node
```
E2E smoke tests (Playwright):
```
cd web
pnpm test:e2e
```
## Known limitations (0.1.0)
- EPUB only (additional formats planned).
- Parser service required for imports (separate Go service).
- Auth is basic email/password (reset/2FA planned).
- Offline reading is not supported yet.
## Status
Active development. Expect breaking changes while the new stack stabilizes.
## License
Apache License 2.0. See `LICENSE`.