komga
Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
Top Related Projects
The Free Software Media System
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:
- Ensure you have Java 11 or later installed on your system.
- Download the latest Komga release from the GitHub releases page.
- Run Komga using the following command:
java -jar komga-X.Y.Z.jar
- 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
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
Sponsors
Credits
The Komga icon is based on an icon made by Freepik from www.flaticon.com
Top Related Projects
The Free Software Media System
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
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot