Mango is a self-hosted manga server and reader. Its features include
- Multi-user support
- OPDS support
- Dark/light mode switch
- Supported formats:
.cbz
,.zip
,.cbr
and.rar
- Supports nested folders in library
- Automatically stores reading progress
- Thumbnail generation
- Built-in MangaDex downloader
- Supports plugins to download from thrid-party sites
- 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
Please check the Wiki for more information.
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.
- 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
The official docker images are available on Dockerhub.
- Make sure you have
crystal
,shards
andyarn
installed. You might also need to install the development headers of some libraries. Please see the Dockerfile for the full list of dependencies - Clone the repository
make && sudo make install
- Start Mango by running the command
mango
- Head over to
localhost:9000
to log in
Mango - Manga Server and Web Reader. Version 0.20.0
Usage:
mango [sub_command] [options]
Options:
-c PATH, --config=PATH Path to the config file [type:String]
-h, --help Show this help.
-v, --version Show version.
Sub Commands:
admin Run admin tools
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
base_url: /
session_secret: mango-session-secret
library_path: ~/mango/library
db_path: ~/mango/mango.db
scan_interval_minutes: 5
thumbnail_generation_interval_hours: 24
log_level: info
upload_path: ~/mango/uploads
plugin_path: ~/mango/plugins
download_timeout_seconds: 30
page_margin: 30
disable_login: false
default_username: ""
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
chapter_rename_rule: '[Vol.{volume} ][Ch.{chapter} ]{title|id}'
manga_rename_rule: '{title}'
scan_interval_minutes
,thumbnail_generation_interval_hours
anddb_optimization_interval_hours
can be any non-negative integer. Setting them to0
disables the periodic taskslog_level
can bedebug
,info
,warn
,error
,fatal
oroff
. Setting it tooff
disables the logging- You can disable authentication by setting
disable_login
to true. Note thatdefault_username
must be set to an existing username for this to work.
You can organize your archive 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
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.
Library:
Title:
Dark mode:
Reader:
Mobile UI:
Please check the development guideline if you are interested in code contributions.
Alex Ling 💻 📖 🚇 |
jaredlt 💻 🤔 🎨 |
ココロ 🚇 |
Valentijn 🚇 |
flying-sausages 📖 🤔 |
Xavier 🚇 |
Jarao 🚇 |
이인용 💻 |
Simon 💻 |