Skip to content

Latest commit

Β 

History

65 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Yomiru

A simple manga/manhwa reader application with reading history, bookmarks, and progress tracking.

Yomiru Preview

Features

  • πŸ“ Browse and scan local manga directories
  • πŸ” Search manga by title with debounced search
  • πŸ“– Read manga with page navigation
  • πŸ“š Reading history tracking
  • πŸ”– Page bookmarks
  • πŸ“Š Progress tracking
  • 🎨 Dark/Light theme support

Requirements

  • Docker & Docker Compose
  • Your manga files in a directory (default: /mnt/d/Manhwa)

Quick Start

  1. Clone the repository

    git clone <repository-url>
    cd yomiru
  2. Configure manga storage path

    Create .env file from the example:

    cp .env.example .env

    Edit .env and set your manga directory:

    MANGA_STORAGE_PATH=/path/to/your/manga

    Default is /mnt/d/Manhwa

  3. Build and start

    docker compose build
    docker compose up -d
  4. Access the application

    Open your browser: http://localhost:3000

Usage

  1. Click "Scan Directory" button on the home page
  2. The input will be pre-filled with /manga (your mounted storage path)
  3. Click "Scan" to import your manga
  4. Start reading!

Stopping the Application

docker compose down

Development

Version Management

The application version is displayed in the Settings drawer. To update the version:

Option 1: Using the sync script (recommended)

# Sync frontend to match backend version
node sync-version.js

# Update both to a new version
node sync-version.js 1.2.0

Option 2: Manual update

  1. Update backend/package.json version
  2. Update frontend/package.json version (must match)
  3. Rebuild and restart the backend:
    docker compose build backend
    docker compose up -d backend

Version validation:

  • Backend validates version sync at startup (when frontend package.json is accessible)
  • If versions don't match, a warning is logged to help catch inconsistencies
  • The backend version is considered the source of truth
  • In Docker, validation may not run since frontend/backend are separate containers

Tech Stack

  • Backend: Node.js, Express, Prisma, SQLite
  • Frontend: Vue 3, Vite, Tailwind CSS
  • Infrastructure: Docker, Docker Compose

Project Structure

yomiru/
β”œβ”€β”€ backend/          # Backend API server
β”œβ”€β”€ frontend/         # Vue frontend application
β”œβ”€β”€ storage/          # Data storage (covers, etc.)
β”‚   └── images/       # Downloaded cover images
β”œβ”€β”€ docker-compose.yml
└── README.md

For detailed information about the backend or frontend, see their respective README files:

License

MIT

About

πŸ“– Offline Manga Reader

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages