Skip to content

iCosiSenpai/KometaManga

Repository files navigation

KometaManga

Self-hosted manga, comic, and novel library manager with a built-in reader and metadata fetcher.

Features

  • Library management: Organize Manga, Comics, Novels and Webtoons
  • CBZ/ZIP/CBR/PDF/EPUB support: Read all major comic formats
  • Web reader: LTR, RTL, vertical scrolling, and webtoon modes
  • Metadata fetching: AniList, MangaDex, and more (via provider plugins)
  • OPDS v1: Sync with e-readers (Moon+, KOReader)
  • KOReader sync: Native two-way progress sync
  • Multi-user: Role-based access (admin/user)
  • Download engine: Fetch from manga sources (planning)
  • PWA: Install as a standalone app on mobile/desktop

Tech Stack

  • Backend: Kotlin 2.1, Ktor 3, SQLite (Exposed + Flyway)
  • Frontend: React 19, Tailwind CSS 3, Vite 6, shadcn/ui
  • Build: Gradle 8.12, JDK 21, Docker

Quick Start

Local development

Requires JDK 21 and Node 20 installed.

# Clone
git clone https://github.com/iCosiSenpai/KometaManga.git
cd KometaManga

# Build backend
./gradlew :api:shadowJar

# Build frontend
cd frontend && npm install && npm run build && cd ..

# Run
java -jar api/build/libs/api-all.jar

The server starts on http://localhost:8085.

Docker

docker compose up -d

Access at http://localhost:8085.

API Endpoints

Method Path Description
POST /api/auth/login Login
POST /api/auth/register Register
GET /api/libraries List libraries
POST /api/libraries Create library
GET /api/libraries/{id}/series Browse series
GET /api/books/{id}/pages/{n} Read page image
GET /api/books/{id}/progress Get reading progress
POST /api/books/{id}/progress Save progress
GET /opds/v1 OPDS root catalog

Configuration

Create config/application.yml on first run:

server:
  port: 8085
auth:
  secret: change-me-in-production
database:
  url: jdbc:sqlite:./kometamanga.db

License

MIT

Packages

 
 
 

Contributors