Skip to content

henry40408/comics

Repository files navigation

Comics

Simple file server for comic books

Casual Maintenance Intended GitHub Workflow Status (with event) GitHub GitHub tag (latest SemVer pre-release) codecov

Overview

This project provides a self-hosted solution to serve comic books.

Background

While several options exist for self-hosted comic readers like Calibre, Komga, and Tanoshi, they often come with complications in setup or format restrictions. Comics seeks to offer a straightforward alternative.

Features

  • Simple Structure: Comics looks only at the immediate subdirectories of your chosen folder. Each directory is treated as a book, and the files inside as the pages. No nested subfolders will be scanned. This simplicity ensures you have a clear structure for your comics.
  • Basic Authentication: Safeguard your comics with a simple username-password protection. See Commands and Environment Variables for setup.

Environment Variables

Variable Description Default
AUTH_USERNAME Username for basic authentication (none)
AUTH_PASSWORD_HASH Hashed password for basic authentication (none)
BIND Bind host & port 127.0.0.1:3000
DATA_DIR Data directory ./data
DEBUG Enable debug mode (off)
LOG_FORMAT Log format (full, compact, pretty, json) full
NO_COLOR Disable color output (no-color.org) (off)
SEED Seed to generate hashed IDs (random)

Setup and Usage

  1. Getting Started:

    • Clone the repository to your local machine.
    • Navigate to the project directory and install any required dependencies (if applicable).
  2. Organize Your Comics:

Make sure you have your comics structured as shown below:

data
├── book1
│   ├── page1.jpg
│   ├── page2.jpg
│   └── page3.jpg
├── book2
│   ├── page1.jpg
│   ├── page2.jpg
│   └── page3.jpg
└── book3
    ├── page1.jpg
    ├── page2.jpg
    └── page3.jpg

Each book directory represents an individual comic book, with image files as the pages.

  1. Run the Server:

Navigate to the project directory in your terminal or command line and enter:

./comics

Now, open your web browser and head to http://localhost:3000/ to view your comics.

Commands

hash-password

Generate a bcrypt-hashed password for basic authentication:

$ comics hash-password
Password:
Confirmation:
$2a$10$...Ot6

list (alias: ls)

List all books and their page counts:

$ comics list
Book Title 1 (10P)
Book Title 2 (5P)
2 book(s), 15 page(s), scanned in 1.23ms

Need Help?

For a comprehensive list of options, type:

./comics -h

License

MIT

About

Simple file server for comic books

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors