Skip to content
A digital comic book management application.
Java TypeScript HTML Other
Branch: develop
Clone or download
mcpierce Squashed commit of the following:
commit ea0fbfbc06d47fb0cd8fe58bb097861e2961f428
Author: Darryl L. Pierce <>
Date:   Tue Aug 13 16:09:38 2019 -0400

    [Issue #509] Integrated the LibraryModule into the application.

commit 8972dfc9b4f52c0d6ed99056c8414c3ce85fa774
Author: Darryl L. Pierce <>
Date:   Mon Aug 12 06:51:57 2019 -0400

    [Issue #509] Created the Library module.

commit e70be369ffa4c7b324ab1f5de942f3fc74a0fdaf
Author: Darryl L. Pierce <>
Date:   Tue Aug 13 21:29:27 2019 -0400

    [Issue #509] Updated the backend APIs for the new library module.
Latest commit 6cbfae9 Aug 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci [FIX] Added CircleCI configuration for continuous builds. Dec 24, 2018
.github/ISSUE_TEMPLATE Update issue templates Dec 24, 2018
comixed-app [VERSION] Bumped the develop branch to 0.4.9. Jun 30, 2019
comixed-frontend Squashed commit of the following: Aug 18, 2019
comixed-importer [FIX] Fix Travis CI builds by reducing build output. Aug 5, 2019
comixed-library Squashed commit of the following: Aug 18, 2019
comixed-rest-api Squashed commit of the following: Aug 18, 2019
comixed-services Squashed commit of the following: Aug 18, 2019
comixed-tasks [FIX] Fix Travis CI builds by reducing build output. Aug 5, 2019
docs [DOC] Updated the coding conventions for the project. Jul 14, 2019
images [Issue #500] Updated the quickstart guide for the new UX experience. Aug 4, 2019
.gitignore [FIX] Add IntelliJ files to the ignore list. Jul 20, 2019
.gitlab-ci.yml [FIX] Added JaCoCo dependency to the Java project. Dec 24, 2018
.travis.yml [FIX] Allow deploys of release updates. Jun 23, 2019 [FIX] Updated the project name to ComiXed in the documentation. Dec 24, 2018 Create Dec 24, 2018 [Issue #404] Added a note about running lint checks on contributions. Mar 10, 2019 [DOC] Added Alex Engelhardt as a contributor. Dec 24, 2018 [Issue #196] Added the DEVELOPERS help file. Feb 24, 2019
LICENSE Initial commit Mar 18, 2017 Create Dec 24, 2018 [Issue #500] Updated the quickstart guide for the new UX experience. Aug 4, 2019 [DOC] Added a project roadmap. Jul 4, 2019 [DOC] Fixed the version to be 0.3.0 Dec 31, 2018
pom.xml [SECURITY] Upgrade Jackson dependencies to 2.9.9. Aug 8, 2019


An application for managing digital comics.

Project Roadmap And Vision Statement

The goals for this project are simple. It seeks to be the ultimate management tool for digital comic books.

To achieve this goal, the project will:

  • be portable:
    • it can be hosted on the Mac, Linux or Windows, and
    • it can be used by any web browser.
  • manage a library of digital comic books, including:
    • the archive format of the individual files (CBR, CBZ, CB7),
    • converting files from one format to another between the supported types,
    • adding and removing images that make up the pages of the comic,
    • managing what type a page is (front cover, alternate cover, story, back cover, advertisement, etc.)
    • blacklisting pages based on hash identifiers so that they are ignored, and
    • deleting blacklisted.
    • consolidating the library, including performing any or all of the following steps:
      • moving all files into a well-defined directory structure,
      • converting comics to a single archive type,
      • removing files from each comic that has been blacklisted, and
      • updating the ComicInfo.xml file within each comic with the current metadata.
  • administrators can quickly import new comics into their library.
  • scraping metadata for comics from various sources, such as ComicVine.
  • allow managed access to the contents of the library:
    • administrative users can create/delete other users,
    • users can create reading lists,
    • users can manage their read state for all comics in the library, and
    • users can read comics using an OPDS application.
  • a plugin system allows administrators to customize the features in their application:
    • plugins can be written by third-parties to provide new and custom functionality, and
    • administrators can easily install plugins.

What The Project Will Not Do

  • It is not a comic reading application.


  • TravisCI Build Status: Build Status
  • You can download the latest unsupported release from the Releases tab. Every merge to the Develop branch triggers a new build.

Overview And Goals

ComiXed is designed to be a cross-platform digital comics manager. It will:

  • import your existing and new digital comics
  • organize your comics under a single directory
  • allow you to view and edit the details of the comic
  • search your comic library by comic details
  • identify, and delete, duplicate pages across comics
  • provide access to your library from a variety of applications

Paired with an application that can read your comics (such as Chunky Reader) you will have a very powerful and useful solution for managing and reading your digital comic collection.

Supported Comic Formats

The following digital comic formats are supported:

  • CBZ (ZIP)
  • CBR (RAR)
  • CB7 (7ZIP)

Building The Application

The foloowing sections will describe how to setup your location environment and also how to build the project.


The application depends on the following pieces:

Setting Up Your Build Environment

Once you've installed the requirements, you need to setup your environment:

  1. Install yarn: npm install -g yarn

Running The Build

The application is composed of several modules:

  • comixed-library: the domain model, persistence layer and archive adaptors,
  • comixed-tasks: the set of worker tasks that run in the backend server
  • comixed-rest-api: the web layer and REST API processors,
  • comixed-frontend: the Angular frontend, and
  • comixed-app: the application, which pulls the previous pieces together in a working application.

To build all of them then execute the following from the project's root directory:

mvn clean package

If the build is successful, then you will have a file in the comixed-app/target directory named something like comixed-app-*.jar. This is the final application artifact and what you will now be able to run.

If, however, you saw any errors, you'll need to go back and verify that you've properly setup your environment.

Running The Application

To start the application from the project root, launch it from the command line with:

$ java -jar comixed-app/target/comixed-app-*.jar

NOTE: As this is still an actively developed project, there's always a chance that your local database has become corrupted. If you experience problems with starting the application, a good first step would be to delete your local database and try running the application again.

The database can be found:

Operating System Location
Windows C:\users[your username].comixed
Linux /home/[your username]/.comixed
MacOS /users/[your username].comixed

Interacting With The Application

To connect to the web application, point a browser to http://localhost:7171/.

You can then log into the application with one of two default accounts:

  1. Administrator username=comixedadmin@localhost password=comixedadmin
  2. Reader username=comixedreader@localhost password=comixedreader

Developing The Front End

If you are working on changes to the frontend, you can launch an instance of the Angular server separately from the backend.

You can launch the backend by moving to the comixed-app module and launching it using the commandline:

mvn spring-boot:run -DskipTests

Then, in the comixed-frontend subdirectory, launch it using the commandline:

$ yarn start

You can nowconnect to the web application from your browser using http://localhost:4200/. And, as your make changes to the Angular code, this frontend will update automatically.

Reading Comics Remotely

You can read comics from your library using any comic reader that supports the OPDS, such as Chunky Reader.

To allow your reader to access the library, you will need either the hostname or IP address for the computer running ComiXed. So, for example, if that computers IP address is then you would tell the reader:

Username: [the username for your login]
Password: [the password for your login]

Please note that some readers (such as Chunky) assume the /opds portion of the URL. SO if your reader does not see a reading list, try removing /opds from the URL.

Then your reader should see, at least, a reading list named All Comics. This list will allow you to read all comics in your library.

Future work will allow for different reading lists to be presented via OPDS. Please stay tuned for those changes to arrive.


When working on a feature or fixing a bug, please write and test your code against the develop branch. Then, when it is completed, please send a pull request to have the code imported.

All code should come with unit tests.

If the code is in good shape, then it will be included.

If the code needs some fixes or changes, the developers will provide feedback asking for those changes. Please apply them and resubmit your changes.

And, if this is your first addition to the project, please add your name to the file with your pull request.


You can’t perform that action at this time.