Skip to content

nikunjsingh93/thinkread-ebook-reader

Repository files navigation

ThinkRead Logo ThinkRead

A dead‑simple self‑hosted EPUB library + reader:

  • Upload multiple EPUB files from your device
  • Browse them in a shelf view with extracted book covers
  • Read in-browser with themes + typography controls (font, size, margins, line height, colors)
  • Upload and use custom fonts (TTF, OTF, WOFF, WOFF2)
  • Remembers your last position per book
  • Install as PWA (Progressive Web App)

Screenshots

Desktop

1 2 3 4

Mobile

5 6 7

License

This project is licensed under the MIT License - see the LICENSE file for details.

Important Notes

  • Books: This repository does not include any sample books. You must add your own EPUB files to the data/books/ directory. Only include books you have the legal right to distribute.
  • Fonts: Only open-source fonts are included. Custom fonts can be uploaded by users.
  • Dependencies: All npm dependencies are open-source with permissive licenses.

Deploy to Server

Default User Credentials:

  • Username: admin
  • Password: admin

Docker Compose

services:
  thinkread:
    image: nikunjsingh/thinkread-ebook-reader:latest
    ports:
      - "8080:8080"
    volumes:
      - ./thinkread/data:/data # this is the data directory for the database and the files
    environment:
      - DATA_DIR=/data
    restart: unless-stopped

Separate Volumes Configuration

Use this configuration if you want to store your library (book files) on a different drive or directory from the application data (covers, settings, users).

services:
  thinkread:
    image: nikunjsingh/thinkread-ebook-reader:latest
    ports:
      - "8080:8080"
    volumes:
      # Application data (covers, fonts, database)
      - ./thinkread/data:/data
      # Your book library (external HDD or specific folder)
      - /path/to/your/books:/books
    environment:
      - DATA_DIR=/data
      - BOOKS_DIR=/books
    restart: unless-stopped

Docker Run

docker run -d \
  --name thinkread \
  -p 8080:8080 \
  -v ./thinkread/data:/data \
  -e DATA_DIR=/data \
  --restart unless-stopped \
  nikunjsingh/thinkread-ebook-reader:latest

Development Mode (with Docker)

For development with hot-reload and watch mode:

docker compose -f docker-compose.dev.yml up --build

Access:

Production Build (Docker)

For production deployment:

docker compose up --build

Access:

Uploaded books + app data are stored in ./thinkread/data (mapped to /data inside the container).

Notes / Limitations

  • Supported Formats: EPUB, MOBI (automatically converted to EPUB), and PDF.
  • Automatic Extraction: EPUB covers and PDF thumbnails are automatically extracted.
  • Custom fonts: Upload TTF, OTF, WOFF, or WOFF2 files in the reader settings for personalized typography.

About

Simple ebook reader made in react with sync across devices and TTS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages