Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/getmango/Mango
Mango is a self-hosted manga server and web reader
https://github.com/getmango/Mango
crystal crystal-lang manga manga-reader manga-server mangadex self-hosted web-application
Last synced: about 1 month ago
JSON representation
Mango is a self-hosted manga server and web reader
- Host: GitHub
- URL: https://github.com/getmango/Mango
- Owner: getmango
- License: mit
- Created: 2020-02-11T22:06:07.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-02T02:23:36.000Z (over 1 year ago)
- Last Synced: 2024-10-30T18:17:45.738Z (about 1 month ago)
- Topics: crystal, crystal-lang, manga, manga-reader, manga-server, mangadex, self-hosted, web-application
- Language: Crystal
- Homepage: https://getmango.app
- Size: 7.9 MB
- Stars: 1,708
- Watchers: 35
- Forks: 123
- Open Issues: 77
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-homelab - Mango - hosted manga server and web reader | (Apps / X)
README
![banner](./public/img/banner-paddings.png)
# Mango
[![Patreon](https://img.shields.io/badge/support-patreon-brightgreen?link=https://www.patreon.com/hkalexling)](https://www.patreon.com/hkalexling) ![Build](https://github.com/hkalexling/Mango/workflows/Build/badge.svg) [![Gitter](https://badges.gitter.im/mango-cr/mango.svg)](https://gitter.im/mango-cr/mango?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Discord](https://img.shields.io/discord/855633663425118228?label=discord)](http://discord.com/invite/ezKtacCp9Q)
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
- Supports [plugins](https://github.com/hkalexling/mango-plugins) to download from third-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 painlessPlease check the [Wiki](https://github.com/hkalexling/Mango/wiki) for more information.
## Installation
### Pre-built Binary
Simply download the pre-built binary file `mango` for the latest [release](https://github.com/hkalexling/Mango/releases). All the dependencies are statically linked, and it should work with most Linux systems on amd64.
### Docker
1. Make sure you have docker installed and running. You will also need `docker-compose`
2. Clone the repository
3. Copy the `env.example` file to `.env`
4. 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
5. Run `docker-compose up`. This should build the docker image and start the container with Mango running inside
6. 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](https://hub.docker.com/r/hkalexling/mango).
### Build from source
1. Make sure you have `crystal`, `shards` and `yarn` installed. You might also need to install the development headers of some libraries. Please see the [Dockerfile](https://github.com/hkalexling/Mango/blob/master/Dockerfile) for the full list of dependencies
2. Clone the repository
3. `make && sudo make install`
4. Start Mango by running the command `mango`
5. Head over to `localhost:9000` to log in## Usage
### CLI
```
Mango - Manga Server and Web Reader. Version 0.27.0Usage:
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
```### 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
```yaml
---
host: 0.0.0.0
port: 9000
base_url: /
session_secret: mango-session-secret
library_path: ~/mango/library
db_path: ~/mango/mango.db
queue_db_path: ~/mango/queue.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
library_cache_path: ~/mango/library.yml.gz
cache_enabled: true
cache_size_mbs: 50
cache_log_enabled: true
disable_login: false
default_username: ""
auth_proxy_header_name: ""
plugin_update_interval_hours: 24
```- `scan_interval_minutes`, `thumbnail_generation_interval_hours`, and `plugin_update_interval_hours` can be any non-negative integer. Setting them to `0` disables the periodic tasks
- `log_level` can be `debug`, `info`, `warn`, `error`, `fatal` or `off`. Setting it to `off` disables the logging
- You can disable authentication by setting `disable_login` to true. Note that `default_username` must be set to an existing username for this to work.
- By setting `cache_enabled` to `true`, you can enable an experimental feature where Mango caches library metadata to improve page load time. You can further fine-tune the feature with `cache_size_mbs` and `cache_log_enabled`.### Library Structure
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
```### 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:
![library screenshot](./.github/screenshots/library.png)
Title:
![title screenshot](./.github/screenshots/title.png)
Dark mode:
![dark mode screeshot](./.github/screenshots/dark.png)
Reader:
![reader screenshot](./.github/screenshots/reader.png)
Mobile UI:
![mobile screenshot](./.github/screenshots/mobile.png)
## Sponsors
## Contributors
Please check the [development guideline](https://github.com/hkalexling/Mango/wiki/Development) if you are interested in code contributions.
Alex Ling
💻 📖 🚇
jaredlt
💻 🤔 🎨
ココロ
🚇
Valentijn
🚇
flying-sausages
📖 🤔
Xavier
🚇
Jarao
🚇
이인용
💻
Simon
💻
David Knaack
🚇
i use arch btw
🚇
BradleyDS2
📖
Robbo
💻