Read your comics on your tablet
A nice little comic book reader for tablets and mobile phones. It is not intended to work on a desktop computer.
- Watch your comic books on your phone or tablet, at home or on the go.
- Uses your filesystem, has an embedded database.
- Supports most comics formats : CBZ/CBR/ZIP/RAR, PDF, simple image directory.
- Internal search engine to find your comics easily
- Use basic auth credentials (from Nginx/Apache) or use the embedded Database to manage users.
docker run -v /your-images-dir:/comics -p 8080:8080 --rm onigoetz/comicsreader
Will start the comics reader using your comic books at /your-images-dir
and be available at http://localhost:8080.
First, you need
-
Nodejs
-
Imagemagick installed on the machine. (for PDF support)
-
unrar
andunzip
commands installed. (for CBR and CBZ support) -
Download/clone this repository on your server
-
Symlink your comics to
images
in the app's directory -
Make the
images/cache
directory writable -
Run
yarn install
-
Run
yarn build
You can then start the server with yarn start
.
This will index the books and start the server.
Authentication is an optional feature, you can either leverage the basic auth credentials from a server (Apache/Nginx) Or use the built-in database.
This option can be with the COMICS_AUTH_TYPE
environment variable.
possible values are "basic" (default) or "db"
When using the "db" authentication mode, you need to create users, for this we provide a command-line tool to create them.
Note that the container has to be stopped in order to use the CLI tool as the database is otherwise readonly.
sudo docker run --rm -it -v your_images_dir:/comics onigoetz/comicsreader node comics createUser
sudo docker run --rm -it -v your_images_dir:/comics onigoetz/comicsreader node comics changePassword
Basedir has to be specified as an environment variable when starting the server.
COMICS_BASE="comics" yarn start
# OR
docker run -e "COMICS_BASE=comics" ...
location /BD/ {
proxy_pass http://comics:8080/BD/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
}
- Files with accents in zip (cbz) files don't work.
- The web interface is made with React.
- The photo viewer is made with PhotoSwipe.
- Next.js powers the server side with a hint of Express.
- Sharp is used to generate the thumbnails.
- Icon is from GetDrawings