Mango
Mango is a self-hosted manga server and reader. Its features include
- Multi-user support
- Dark/light mode switch
- Supports both
.zip
and.cbz
formats - Supports nested folders in library
- Automatically stores reading progress
- Built-in MangaDex downloader
- The web reader is responsive and works well on mobile, so there is no need for a mobile app
- All the static files are embedded in the binary, so the deployment process is easy and painless
Installation
Pre-built Binary
Simply download the pre-built binary file mango
for the latest release. All the dependencies are statically linked, and it should work with most Linux systems on amd64.
Docker
- Make sure you have docker installed and running. You will also need
docker-compose
- Clone the repository
- Copy the
env.example
file to.env
- Fill out the values in the
.env
file. Note that the main and config directories will be created if they don't already exist. The files in these folders will be owned by the root user - Run
docker-compose up
. This should build the docker image and start the container with Mango running inside - Head over to
localhost:9000
(or a different port if you changed it) to log in
Docker (via Dockerhub)
The official docker images are available on Dockerhub.
Build from source
- Make sure you have
crystal
,shards
andyarn
installed. You might also need to install the development headers forlibsqlite3
andlibyaml
. - Clone the repository
make && sudo make install
- Start Mango by running the command
mango
- Head over to
localhost:9000
to log in
Usage
CLI
Mango e-manga server/reader. Version 0.3.0
-v, --version Show version
-h, --help Show help
-c PATH, --config=PATH Path to the config file. Default is `~/.config/mango/config.yml`
Config
The default config file location is ~/.config/mango/config.yml
. It might be different if you are running Mango in a docker container. The config options and default values are given below
---
port: 9000
library_path: ~/mango/library
upload_path: ~/mango/uploads
db_path: ~/mango/mango.db
scan_interval_minutes: 5
log_level: info
mangadex:
base_url: https://mangadex.org
api_url: https://mangadex.org/api
download_wait_seconds: 5
download_retries: 4
download_queue_db_path: ~/mango/queue.db
scan_interval_minutes
can be any non-negative integer. Setting it to0
disables the periodic scanlog_level
can bedebug
,info
,warn
,error
,fatal
oroff
. Setting it tooff
disables the logging
Library Structure
You can organize your .cbz/.zip
files in nested folders in the library directory. Here's an example:
.
├── Manga 1
│ ├── Volume 1.cbz
│ ├── Volume 2.cbz
│ ├── Volume 3.cbz
│ └── Volume 4.zip
└── Manga 2
└── Vol. 1
└── Ch.1 - Ch.3
├── 1.zip
├── 2.zip
└── 3.zip
Initial Login
On the first run, Mango would log the default username and a randomly generated password to STDOUT. You are advised to immediately change the password.
Screenshots
Library:
Title:
Dark mode:
Reader:
Mobile UI: