Convert Figma logo to code with AI

gotson logokomga

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support

3,981
235
3,981
17

Top Related Projects

33,274

The Free Software Media System

5,894

Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

Quick Overview

Komga is a free and open-source media server for comics, manga, and digital books. It provides a user-friendly web interface for organizing and reading your digital library, supporting various file formats including CBZ, CBR, PDF, and EPUB. Komga also offers API access for third-party applications and readers.

Pros

  • Easy to set up and use with a clean, intuitive web interface
  • Supports a wide range of comic and book file formats
  • Offers advanced library management features, including metadata editing and series organization
  • Provides API access for integration with other applications and readers

Cons

  • Limited customization options for the user interface
  • Lacks some advanced features found in commercial alternatives
  • May require significant system resources for large libraries
  • Limited support for ebook-specific features compared to dedicated ebook servers

Getting Started

To get started with Komga, follow these steps:

  1. Ensure you have Java 11 or later installed on your system.
  2. Download the latest Komga release from the GitHub releases page.
  3. Run Komga using the following command:
java -jar komga-X.Y.Z.jar
  1. Access the web interface at http://localhost:8080 and follow the setup wizard to configure your library.

For Docker users, you can use the following docker-compose.yml file:

version: '3'
services:
  komga:
    image: gotson/komga
    container_name: komga
    volumes:
      - /path/to/config:/config
      - /path/to/books:/books
    ports:
      - 8080:8080
    user: 1000:1000

Replace /path/to/config and /path/to/books with your desired paths for configuration and library storage, respectively. Then run docker-compose up -d to start Komga.

Competitor Comparisons

33,274

The Free Software Media System

Pros of Jellyfin

  • Broader media support: Handles various types of media including video, audio, and photos
  • More mature project with a larger community and ecosystem
  • Offers client apps for multiple platforms (mobile, smart TVs, etc.)

Cons of Jellyfin

  • Higher resource requirements due to its broader scope
  • More complex setup and configuration process
  • Potentially overwhelming for users only interested in comic/manga management

Code Comparison

Jellyfin (C#):

public class MediaSourceInfo
{
    public string Path { get; set; }
    public string Protocol { get; set; }
    public MediaProtocol? MediaProtocol { get; set; }
    public TransportStreamTimestamp TransportStreamTimestamp { get; set; }
    public Dictionary<string, string> RequiredHttpHeaders { get; set; }
}

Komga (Kotlin):

data class Book(
    val id: String,
    val name: String,
    val url: String,
    val number: Float,
    val created: LocalDateTime,
    val lastModified: LocalDateTime,
    val fileLastModified: LocalDateTime,
    val sizeBytes: Long,
    val metadata: BookMetadata = BookMetadata(),
    val media: Media = Media()
)

Both projects use strongly-typed languages and object-oriented programming. Jellyfin's code reflects its broader media support, while Komga's focuses on book-specific attributes. Jellyfin uses C# properties, while Komga utilizes Kotlin's data classes for concise object definitions.

5,894

Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.

Pros of Kavita

  • More extensive file format support, including EPUB and PDF
  • Advanced user management with granular permissions
  • Built-in OPDS server for easy integration with e-readers

Cons of Kavita

  • Slower development pace and less frequent updates
  • Less mature codebase, potentially leading to more bugs
  • Fewer third-party integrations compared to Komga

Code Comparison

Kavita (C#):

public async Task<bool> DirectoryExists(string path)
{
    return await Task.Run(() => Directory.Exists(path));
}

Komga (Kotlin):

suspend fun directoryExists(path: String): Boolean = withContext(Dispatchers.IO) {
    Files.exists(Paths.get(path))
}

Both projects implement similar functionality for checking directory existence, but Kavita uses C# with async/await pattern, while Komga uses Kotlin coroutines. Komga's implementation is more concise and leverages Kotlin's built-in file handling utilities.

Overall, Kavita offers broader file format support and more advanced user management, making it suitable for users with diverse content types. Komga, on the other hand, benefits from a more active development community and a more stable codebase, which may be preferable for users seeking reliability and frequent updates.

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

Pros of Calibre-web

  • Supports a wider range of e-book formats, including EPUB, MOBI, and PDF
  • Integrates directly with Calibre's database, leveraging its metadata management
  • Offers more advanced user management and book lending features

Cons of Calibre-web

  • Requires an existing Calibre database, which may be complex for new users
  • Less optimized for comic book and manga reading compared to Komga
  • UI can be less modern and responsive, especially on mobile devices

Code Comparison

Calibre-web (Python):

@app.route("/book/<int:book_id>")
@login_required_if_no_ano
def show_book(book_id):
    entries = db.session.query(db.Books).filter(db.Books.id == book_id).first()
    return render_title_template('book.html', entry=entries, title=entries.title)

Komga (Kotlin):

@GetMapping("/{bookId}")
fun getBook(@PathVariable bookId: Long): BookDto =
    bookRepository.findByIdOrNull(bookId)?.toDto()
        ?: throw ResponseStatusException(HttpStatus.NOT_FOUND)

Both repositories provide web-based interfaces for managing and reading digital book collections. Calibre-web is more suited for traditional e-books and integrates with Calibre, while Komga specializes in comic books and manga with a modern, responsive interface. The code snippets show different approaches to routing and database queries, reflecting their respective languages and frameworks.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Open Collective backers and sponsors GitHub Sponsors Discord

GitHub Workflow Status GitHub release (latest SemVer) GitHub all releases Docker Pulls

Translation status

app icon Komga

Komga is a media server for your comics, mangas, BDs, magazines and eBooks.

Chat on Discord

Features

  • Browse libraries, series and books via a responsive web UI that works on desktop, tablets and phones
  • Organize your library with collections and read lists
  • Edit metadata for your series and books
  • Import embedded metadata automatically
  • Webreader with multiple reading modes
  • Manage multiple users, with per-library access control, age restrictions, and labels restrictions
  • Offers a REST API, many community tools and scripts can interact with Komga
  • OPDS v1 and v2 support
  • Kobo Sync with your Kobo eReader
  • Download book files, whole series, or read lists
  • Duplicate files detection
  • Duplicate pages detection and removal
  • Import books from outside your libraries directly into your series folder
  • Import ComicRack cbl read lists

Installation

Refer to the website for instructions.

Documentation

Head over to our website for more information.

Develop in Komga

Check the development guidelines.

Translation

Translation status

Sponsors

Jetbrains_logo

Credits

The Komga icon is based on an icon made by Freepik from www.flaticon.com