All apps · 0 apps
CLU-Comic-Library-Utilities
Docker app from AllAboutDuncan's Repository
Overview
Digital comic curation app to read, manage, edit, and update libraries of any size.
Features:
- Manage Comic Library
- Folder Monitoring
- Bulk Metadata Editing
Readme
View on GitHubComic Library Utilities (CLU)
A self-hosted comic library manager for Docker — bulk CBR to CBZ conversion, a full CBZ editor, ComicInfo.xml metadata from Metron and ComicVine, a built-in web reader, and download automation.

Comic Library Utilities (CLU) is a self-hosted web app for organizing, repairing and reading a digital comic collection. It runs in Docker, points at the folders your comics already live in, and gives you the bulk tools you would otherwise write scripts for: convert CBR to CBZ across an entire library, convert PDF to CBZ, rename thousands of files to a consistent pattern, edit the pages inside a CBZ from the browser, write ComicInfo.xml metadata from Metron, ComicVine, GCD, AniList or MangaDex, and track weekly comic releases with a pull list. Everything happens through the web UI, so you can maintain a remote comic book collection without shell access to the server.
Documentation · Full feature list · FAQ · Discord · Docker Hub

Why CLU Exists
This started as a set of utilities built while moving a 70,000+ issue comic library to Komga. It has since grown into a stand-alone comic library manager: run it alongside Komga or Kavita as the maintenance and metadata layer, or run it on its own and read in the browser.
What CLU Does
- Convert CBR to CBZ in bulk — convert a folder, or an entire library, from RAR-based CBR to CBZ. Also converts PDF to CBZ with a JPEG or WebP output choice.
- Edit CBZ files in the browser — a full GUI editor: rename and drag-reorder pages, add or delete images, crop covers, split a multi-issue CBZ into single issues, combine files, enhance image contrast and brightness.
- Clean up and rename files — bulk rename with custom patterns, remove text from filenames, zero-pad issue numbers, strip junk files and
__MACOSXfolders, and run a missing-issue check against a series. - Comic metadata editing — read and write ComicInfo.xml using Metron, ComicVine, Grand Comics Database, AniList, MangaDex, MangaUpdates and Bedetheque. Bulk tag a whole directory, review changes before they apply, and revert them from a history log.
- Source Wall — a spreadsheet-style view for reviewing and correcting metadata across many issues at once.
- Browse and read your collection — paginated library browsing, per-series pages, folder thumbnails, favorites, and a built-in page-by-page reader that remembers where you left off.
- Reading lists — import CBL files or story arcs from Metron and ComicVine, map entries to files you already own, and see what is missing.
- Pull list and weekly comic releases — subscribe to series, track new weekly releases, and keep a Wanted list of issues you do not have yet.
- Comic downloads — search and download from Direct Download Source, Usenet via Newznab indexers with SABnzbd or NZBGet, and DC++/AirDC++, with configurable source priority and a browser extension for one-click sends.
- Folder monitoring — watch a downloads folder and automatically unpack, convert to CBZ, rename and file new comics into your library.
- Insights, Timeline and CLU Wrapped — collection size and reading stats, a full timeline of what you have read, and shareable year-in-review images.
- Multi-user with per-folder permissions — Reader, Clerk and Store Owner roles, per-library and per-folder access grants, and per-user reading history. Single-user installs need no login at all.
- API and OPDS — a token-authenticated
/api/v1for companion apps, self-documenting at/api/v1/docs, plus OPDS feeds for comic reader apps and optional Komga reading sync.
See FEATURES.md for the complete breakdown.
Installation
CLU is distributed as a Docker image: allaboutduncan/comic-utils-web.
Quick start
docker run -d \
--name clu \
-p 5577:5577 \
-v clu-config:/config \
-v /path/to/cache:/cache \
-v /path/to/comics:/data \
allaboutduncan/comic-utils-web:latest
Then open http://localhost:5577.
Docker Compose (recommended)
Copy the following and edit the environment variables and volume paths.
services:
comic-utils:
image: allaboutduncan/comic-utils-web:latest
container_name: clu
logging:
driver: "json-file"
options:
max-size: '20m' # Reduce log size to 20MB
max-file: '3' # Keep only 3 rotated files
restart: always
ports:
- '5577:5577'
volumes:
- 'config-volume:/config' # Maps to a Docker Volume for Database Storage and Backups
- "/path/to/local/cache:/cache" # Maps to local folder for thumbnail cache
## update the line below to map to your library.
## Map your first/main library to /data
- "/e/Comics:/data"
## Map additional libraries and add them in the settings of the app
- "/e/Manga:/manga"
- "/f/Magazines:/magazines"
## Additional folder if you want to use Folder Monitoring.
- "/f/Downloads:/downloads"
environment:
- FLASK_ENV=production
## Set to 'yes' if you want to use folder monitoring.
- MONITOR=yes/no
## Set the User ID (PUID) and Group ID (PGID) for the container.
## This is often needed to resolve permission issues, especially on systems like Unraid
## where a specific user/group owns the files.
## For Unraid, PUID is typically 99 (user 'nobody') and PGID is typically 100 (group 'users').
## For Windows/WSL, set these to match your Windows user ID (see docs/WINDOWS_WSL_SETUP.md)
- PUID=99
- PGID=100
## File creation mask. 000 -> world-writable folders (drwxrwsrwx) and files
## (-rw-rw-rw-). Use 002 for group-writable (775/664) or 022 for owner-only writes.
- UMASK=000
volumes:
config-volume: # Now required for Database Storage and Backups
Update your Docker Compose: Mapping the /config directory is required to ensure config settings and the database persist across updates.
First install: visit the config page and confirm everything is set up the way you want it, then:
- Save your Config settings
- Click the Restart App button
Windows and WSL users hitting file permission errors should read docs/WINDOWS_WSL_SETUP.md.
Mapping your library volumes
Map your main library to /data. Additional libraries can be mapped to any path and then added in the app's settings. Full install walkthrough: clucomics.org quickstart.
Integrations
| Integration | What it is used for |
|---|---|
| Metron | Comic metadata, series, story arcs, weekly releases |
| ComicVine | Comic metadata via API, or a local offline database |
| Grand Comics Database | Optional local SQLite metadata database |
| AniList / MangaDex / MangaUpdates | Manga metadata |
| Bedetheque | Bandes dessinées (European comics) metadata |
| Komga | Optional reading-history sync |
| Direct Download Source | Comic download search and grabbing |
| SABnzbd / NZBGet | Usenet download clients |
| Newznab indexers | Usenet search |
| AirDC++ | DC++ download source |
| MEGA / Pixeldrain | Supported download mirrors |
| OpenAI / Anthropic / Gemini | Optional AI-powered reading recommendations |
| OPDS | Feeds for third-party comic reader apps |
How CLU Compares
CLU is not a replacement for a comic server — it is the layer underneath one.
| Tool | What it is for | With CLU |
|---|---|---|
| Komga / Kavita | Serving and reading your library | CLU maintains the files and metadata they read; CLU can also sync reading history from Komga |
| Mylar3 | Comic downloading and series tracking | Overlapping — CLU covers pull list, wanted issues and downloads, plus file and metadata tools Mylar does not have |
| ComicTagger | Tagging individual comic files | CLU does bulk tagging across a whole library, with review and revert |
| CLU | Bulk file operations, CBZ editing, metadata, downloads, browsing and reading | — |
Plenty of people run CLU and Komga against the same folders. That is the intended setup.
Frequently Asked Questions
How do I convert CBR to CBZ in bulk?
Point CLU at a directory and run Convert Directory, or run Convert Entire Library to CBZ to process everything at once. Conversion uses unar, so it handles RAR-based CBR files that many tools choke on. See Convert Directory.
Can I convert PDF to CBZ?
Yes. CLU converts PDF comics to CBZ and lets you choose JPEG or WebP for the extracted pages. See Convert PDF to CBZ.
Can CLU catch a wrong metadata match?
Optionally, yes. The metadata date check compares the matched issue's date against the year in the filename and flags a match that disagrees wildly — the case where the series matched is the wrong one and the issue number resolved anyway. Off by default, with a log-only mode so you can see what it would do before it does anything.
Does CLU edit ComicInfo.xml?
Yes — CLU is a full comic metadata editor. It reads and writes ComicInfo.xml, creates it when missing, and can bulk-update fields across an entire directory. Metadata can be pulled from Metron, ComicVine, GCD, AniList, MangaDex, MangaUpdates or Bedetheque, reviewed before it is applied, and reverted afterwards from the metadata history.
Does CLU work with Komga or Kavita?
Yes. CLU operates directly on the files on disk, so anything you fix or tag in CLU shows up in Komga or Kavita after a scan. CLU can also sync reading history from Komga.
Can multiple people use one CLU install?
Yes. CLU supports multiple accounts across three roles — Reader, Clerk and Store Owner — with per-library and per-folder access grants. Reading history, favorites and reading lists are kept separate per user. A single-user install requires no login at all.
Is there a mobile app or OPDS support?
CLU serves OPDS feeds that work with standard comic reader apps, and exposes a token-authenticated /api/v1 for companion apps, documented in-app at /api/v1/docs.
Can I read comics directly in CLU?
Yes. CLU has a built-in browser-based reader with page-by-page navigation that remembers your position, plus Continue Reading and On the Stack views.
Does CLU need an internet connection?
Only for metadata lookups, downloads and recommendations. All file operations — conversion, renaming, CBZ editing, browsing and reading — work entirely offline. GCD and ComicVine can also run from local databases.
Do I need shell access to my server to use CLU?
No — that is the point. Every operation runs through the web UI, so you can maintain a remote comic collection without SSH.
What file formats does CLU support?
CBZ, CBR, PDF, and the plain ZIP and RAR archives that comics are often distributed in. CBZ is the working format everything converts to.
Where is the full documentation?
At clucomics.org, including a setup walkthrough and a page for every feature.
Screenshots




Community & Contributing
- Discord — questions, support and feature discussion
- Documentation — full install and feature docs
- CONTRIBUTING.md — how to contribute code, including adding new metadata providers
- SECURITY.md — reporting a security issue
- CODE_OF_CONDUCT.md — community expectations
- Issues — bug reports and enhancement requests
License
Licensed under the GNU General Public License v3.0.
Say Thanks
If you enjoyed this, want to say thanks or want to encourage updates and enhancements, feel free to 
Media gallery
1 / 2Install CLU-Comic-Library-Utilities on Unraid in a few clicks.
Find CLU-Comic-Library-Utilities in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
allaboutduncan/comic-utils-web:latestRuntime arguments
- Web UI
http://[IP]:[PORT:5577]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--log-opt max-size=20m --log-opt max-file=3
Template configuration
Main Web Interface
- Target
- 5577
- Default
- 5577
- Value
- 5577
Map this to your main Comics library
- Target
- /data
- Value
- /mnt/user/media/
Set to 'yes' if you want to use folder monitoring.
- Target
- MONITOR
- Default
- no
- Value
- no
Optional: Map if you use folder monitoring.
- Target
- /downloads
- Default
- /mnt/user/Downloads
Flask Environment
- Target
- FLASK_ENV
- Default
- development
- Value
- development
- Default
- 99
- Value
- 99
Group ID
- Default
- 100
- Value
- 100
File creation mask. 000 -> world-writable folders (drwxrwsrwx) and files (rw-rw-rw-). Use 002 for group-writable or 022 for owner-only.
- Default
- 000
- Value
- 000
Container Configuration files.
- Target
- /config
- Value
- /mnt/user/appdata/comic-library-utilities/config
Storage for DB and thumbnails.
- Target
- /cache
- Value
- /mnt/user/appdata/comic-library-utilities/cache