Simple file server for comic books
This project provides a self-hosted solution to serve comic books.
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.
- 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.
| 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) |
-
Getting Started:
- Clone the repository to your local machine.
- Navigate to the project directory and install any required dependencies (if applicable).
-
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.
- Run the Server:
Navigate to the project directory in your terminal or command line and enter:
./comicsNow, open your web browser and head to http://localhost:3000/ to view your comics.
Generate a bcrypt-hashed password for basic authentication:
$ comics hash-password
Password:
Confirmation:
$2a$10$...Ot6List 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.23msFor a comprehensive list of options, type:
./comics -hMIT