Kavita
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.
Top Related Projects
Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
Self hosted Spotify tracking dashboard
A rewrite of Tachiyomi for the Desktop
Quick Overview
Kavita is an open-source, cross-platform digital library manager for comics, manga, books, and magazines. It offers a user-friendly web interface for organizing and reading various digital media formats, supporting multiple users and devices.
Pros
- Supports a wide range of file formats, including CBZ, CBR, PDF, EPUB, and more
- Features a responsive web interface accessible from any device
- Offers advanced metadata management and customizable reading experience
- Provides user management with role-based access control
Cons
- Requires self-hosting, which may be challenging for less tech-savvy users
- Limited integration with external services compared to some commercial alternatives
- May have performance issues with very large libraries on lower-end hardware
- Still in active development, so some features may be unstable or incomplete
Getting Started
To get started with Kavita:
- Download the latest release for your platform from the GitHub releases page.
- Extract the downloaded archive to a suitable location.
- Run the Kavita executable (e.g.,
Kavita.exe
on Windows). - Access the web interface by navigating to
http://localhost:5000
in your browser. - Follow the setup wizard to create an admin account and configure your library.
# Example Docker installation (if Docker is installed)
docker run -d \
--name kavita \
-p 5000:5000 \
-v /path/to/your/books:/books \
-v /path/to/your/config:/config \
--restart unless-stopped \
kizaing/kavita:latest
After installation, add your media files to the configured library folders and scan your library through the web interface to start using Kavita.
Competitor Comparisons
Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
Pros of Komga
- Built with Spring Boot, offering robust backend architecture and scalability
- Supports OPDS protocol for remote access and syncing with e-readers
- Provides a more extensive API for third-party integrations
Cons of Komga
- Less focus on manga-specific features compared to Kavita
- User interface may be less intuitive for some users
- Slower development pace and smaller community compared to Kavita
Code Comparison
Kavita (TypeScript):
export class BookService {
async getBooks(libraryId: number): Promise<Book[]> {
return this.bookRepository.findByLibraryId(libraryId);
}
}
Komga (Kotlin):
@Service
class BookService(private val bookRepository: BookRepository) {
fun getBooks(libraryId: Long): List<Book> {
return bookRepository.findByLibraryId(libraryId)
}
}
Both projects use similar service-based architectures, but Kavita is built with TypeScript and Angular, while Komga uses Kotlin and Spring Boot. This difference in tech stack influences the overall structure and performance characteristics of each application.
Self hosted Spotify tracking dashboard
Pros of your_spotify
- Focuses specifically on Spotify data analysis and visualization
- Provides a personal music dashboard with detailed listening statistics
- Offers a modern, responsive web interface for easy access
Cons of your_spotify
- Limited to Spotify data only, not a general-purpose media server
- Requires Spotify account and API access for functionality
- Less comprehensive in terms of media management features
Code Comparison
your_spotify (JavaScript):
const getTopTracks = async (time_range) => {
const response = await spotifyApi.getMyTopTracks({ time_range, limit: 50 });
return response.items;
};
Kavita (C#):
public async Task<IEnumerable<SeriesDto>> GetSeriesDtoForLibraryIdAsync(int libraryId, UserParams userParams)
{
return await _unitOfWork.SeriesRepository.GetSeriesDtoForLibraryIdAsync(libraryId, userParams);
}
Summary
your_spotify is a specialized tool for Spotify users to analyze their listening habits, while Kavita is a more comprehensive digital library manager for various media types. your_spotify offers a focused, user-friendly experience for music enthusiasts, but lacks the broader media management capabilities of Kavita. The code snippets highlight the different focus areas, with your_spotify dealing with Spotify API interactions and Kavita handling general media library operations.
A rewrite of Tachiyomi for the Desktop
Pros of Suwayomi-Server
- Specifically designed for manga and comic reading
- Supports multiple sources for manga/comic downloads
- Lightweight and can run on low-end devices
Cons of Suwayomi-Server
- Limited file format support (mainly focuses on image-based content)
- Less comprehensive metadata management
- Narrower scope of features compared to Kavita's broader media library approach
Code Comparison
Kavita (C#):
public async Task<bool> DirectoryContainsFile(string path, string fileName)
{
return await _directoryService.GetFiles(path).AnyAsync(file =>
file.Name.Equals(fileName, StringComparison.InvariantCultureIgnoreCase));
}
Suwayomi-Server (Kotlin):
suspend fun getChapterContent(chapterId: Long): List<String> = withContext(Dispatchers.IO) {
val chapter = getChapter(chapterId)
return@withContext chapter.getContent()
}
The code snippets show different approaches to file handling and content retrieval. Kavita's example demonstrates file checking within directories, while Suwayomi-Server's code focuses on retrieving chapter content, reflecting their respective focuses on general media management and manga-specific functionality.
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
Kavita is a fast, feature rich, cross platform reading server. Built with a focus for being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family!
What Kavita Provides
- Serve up Manga/Webtoons/Comics (cbr, cbz, zip/rar/rar5, 7zip, raw images) and Books (epub, pdf)
- First class responsive readers that work great on any device (phone, tablet, desktop)
- Dark mode and customizable theming support
- External metadata integration and scrobbling for read status, ratings, and reviews (available via Kavita+)
- Rich Metadata support with filtering and searching
- Ways to group reading material: Collections, Reading Lists (CBL Import), Want to Read
- Ability to manage users with rich Role-based management for age restrictions, abilities within the app, etc
- Rich web readers supporting webtoon, continuous reading mode (continue without leaving the reader), virtual pages (epub), etc
- Full Localization Support
- Ability to customize your dashboard and side nav with smart filters, custom order and visibility toggles.
Support
Demo
If you want to try out Kavita, a demo is available: https://demo.kavitareader.com/
Username: demouser
Password: Demouser64
Setup
The easiest way to get started is to visit our Wiki which has up-to-date information on a variety of install methods and platforms. https://wiki.kavitareader.com/installation/getting-started
Feature Requests
Got a great idea? Throw it up on Discussions or vote on another idea. Please check the Project Board first for a list of planned features before you submit an idea.
Notice
Kavita is being actively developed and should be considered beta software until the 1.0 release. Kavita may be subject to changes in how the platform functions as it is being built out toward the vision. You may lose data and have to restart. The Kavita team strives to avoid any data loss.
Donate
If you like Kavita, have gotten good use out of it, or feel like you want to say thanks with a few bucks, feel free to donate. Money will go towards expenses related to Kavita. Back us through OpenCollective. You can also use Paypal, however your name will not show below. Kavita+ is also an option which provides funding and you get a benefit.
Kavita+
Kavita+ is a paid subscription that offers premium features that otherwise wouldn't be feasible to include in Kavita. It is ran and operated by majora2007, the creator and developer of Kavita.
If you are interested, you can use the promo code FIRSTTIME
for your initial signup for a 50% discount on the first month (2$). This can be thought of as donating to Kavita's development and getting some sweet features out of it.
If you already contribute via OpenCollective, please reach out to majora2007 for a provisioned license.
Localization
Thank you to Weblate who hosts our localization infrastructure pro-bono. If you want to see Kavita in your language, please help us localize.
PikaPods
If you are looking to try your hand at self-hosting but lack the machine, PikaPods is a great service that allows you to easily spin up a server. 20% of app revenues are contributed back to Kavita via OpenCollective.
Contributors
This project exists thanks to all the people who contribute and downstream library maintainers. Contribute.
Backers
Thank you to all our backers! ð Become a backer
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor
Mega Sponsors
JetBrains
Thank you to JetBrains for providing us with free licenses to their great tools.
License
- GNU GPL v3
- Copyright 2020-2024
Top Related Projects
Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
Self hosted Spotify tracking dashboard
A rewrite of Tachiyomi for the Desktop
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