A modern, feature-rich comic reader in the browser for CBZ files, built with React and Node.js. Test it here - https://comics.jackolix.dev
- 📖 Smooth comic reading experience with CBZ support
- 🌙 Dark and light mode support
- 🔒 Optional password protection for servers
- 🖱️ Intuitive page navigation with scroll and arrow keys
- 🔍 Advanced zoom controls for detailed panel viewing
- 📚 Comprehensive library management system
- 🌐 Support for both local files and remote server
- 🎨 Beautiful cover image previews
- 🐳 Docker support for easy deployment
Comic library interface with add files and server options
Comic reading interface with zoom controls
Create a docker-compose.yml
file:
services:
comic-reader:
image: ghcr.io/jackolix/comic-reader:latest
ports:
- "80:80"
restart: unless-stopped
comic-server:
image: ghcr.io/jackolix/comic-server:latest
volumes:
- ./comics:/comics
environment:
- COMICS_DIR=/comics
- SERVER_PASSWORD=your_secure_password #optional
- PORT=3000 #default is 3000
ports:
- "3000:3000"
restart: unless-stopped
Run with:
docker-compose up -d
For the comic reader (frontend):
docker run -d \
--name comic-reader \
-p 80:80 \
--restart unless-stopped \
ghcr.io/jackolix/comic-reader:latest
For the comic server (backend):
docker run -d \
--name comic-server \
-v /path/to/your/comics:/comics \
-e COMICS_DIR=/comics \
-e SERVER_PASSWORD=your_secure_password \ #optional
-p 3000:3000 \
--restart unless-stopped \
ghcr.io/jackolix/comic-server:latest
Endpoint | Method | Description |
---|---|---|
/api/comics |
GET | List all comics |
/api/comics/:filename |
GET | Retrieve specific comic |
/api/covers/:filename |
GET | Get comic cover |
/api/status |
GET | Server health check |
See DEVELOPMENT.md for detailed development setup and guidelines.
This project is licensed under the MIT License - See LICENSE