mirror of https://github.com/getmango/Mango.git
101 lines
3.0 KiB
Markdown
101 lines
3.0 KiB
Markdown
# Mango
|
|
|
|
![banner](./public/img/banner-paddings.png)
|
|
|
|
Mango is a self-hosted manga server and reader. Its features include
|
|
|
|
- Multi-user support
|
|
- Supports both `.zip` and `.cbz` formats
|
|
- Automatically stores reading progress
|
|
- 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
|
|
|
|
1. 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 `docker-compose.example.yml` to `docker-compose.yml`
|
|
4. Modify the `volumes` in `docker-compose.yml` to point the directories to desired locations on the host machine
|
|
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` to log in
|
|
|
|
### Build from source
|
|
|
|
1. Make sure you have Crystal, Node and Yarn installed. You might also need to install the development headers for `libsqlite3` and `libyaml`.
|
|
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 e-manga server/reader. Version 0.1.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
|
|
|
|
```yaml
|
|
---
|
|
port: 9000
|
|
library_path: ~/mango/library
|
|
db_path: ~/mango/mango.db
|
|
scan_interval_minutes: 5
|
|
log_level: info
|
|
```
|
|
|
|
- `scan_interval_minutes` can be any non-negative integer. Setting it to `0` disables the periodic scan
|
|
- `log_level` can be `debug`, `info`, `warn`, `error`, `fatal` or `off`. Setting it to `off` disables the logging
|
|
|
|
### Required Library Structure
|
|
|
|
Please make sure that your library directory has the following structure:
|
|
|
|
```
|
|
.
|
|
├── Manga 1
|
|
│ └── Manga 1.cbz
|
|
└── Manga 2
|
|
├── Vol 0001.zip
|
|
├── Vol 0002.zip
|
|
├── Vol 0003.zip
|
|
├── Vol 0004.zip
|
|
└── Vol 0005.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)
|
|
|
|
Reader:
|
|
|
|
![reader screenshot](./.github/screenshots/reader.png)
|
|
|
|
Mobile UI:
|
|
|
|
![mobile screenshot](./.github/screenshots/mobile.png)
|