In a previous post I went over how I use Docker Compose to build out and manage my self-hosted services. In this post, I want to introduce you to one of my favorites: Komga!
Komga is an open-source comic book/manga web server that allows you organize and serve all of your CBZ/CBR/EPUB’s in one place! As I mentioned above, it can be run in Docker so you can basically run it on anything. It has an integrated web reader and offers an API that can be used with many popular comic/manga readers.
Why do I like it so much, you ask?
Well, a few years ago I was running Ubooquity to host my comic library and while it worked, there were a lot things I wasn’t happy with:
- Clunky looking interface
- Resource hog (had problems with memory leaks)
- Wasn’t being developed/supported
When I switched, I loved Komga right away! The UI is clean, modern (dark mode is included!), and responsive. It’s lightweight, built with performance in mind, has better metadata management, and is actively developed. It’s also free and open-source!
All wins over Ubooquity in my book.
That being said, library management took some getting used to.
Komga requires that the folder structure of your comic/manga library be laid out a particular way:
You can separate content in different libraries, a library is a group of books. Libraries access can also be restricted to specific users.
Each library has a root folder, and no library can share any part of their path.
For example if you have a library with a root path of
– Komga.org/books/mangas
, you can’t create a library with a root path of/books
, because the two root paths would overlap. You can however create a library with a root path of/books/comics
.
In practice, the folder structure ends up looking something like this:
With “Comics” as the root folder and then publishers under that, with characters or “teams” getting sub-folders within their respective publisher (ex: Comics > DC > Suicide Squad).
Another thing that Komga has some trouble with is nested folders. For example, if I have a folder called “Justice League” that lives in Comics > DC > Justice League and contains the following sub-folders:
- Justice League of America
- Justice League Dark
- Justice League International
- Justice League Odyssey
We’ll want to want to import each of the sub-folders nested within “Justice League” into Komga separately as its own library.
We can do this by navigating to Komga’s web interface, then clicking the + sign next to Library in the upper left-hand corner of the screen:
We’ll name the library “Justice League Dark” then click browse and find the library’s folder:
Once Komga finishes importing the folder/library, you’ll see it in the sidebar on the left-hand side:
It should be noted that I believe the developer(s) of Komga have a slightly different philosophy in mind, regarding library organization.
Series can also be grouped together using Collections (something I haven’t played around with too much).
Do you use Komga? If so, how do you have your library set up? If not, what are you using to host your content? Let me know below!