A self-hosted manga server and web reader written in Go. This is a modern rewrite of the original Mango project, offering improved performance, easier deployment, and better maintainability.
- π Manga Library Management: Organize and browse your manga collection
- π Web Reader: Read manga directly in your browser
- π± Responsive Design: Works on desktop, tablet, and mobile devices
- π₯ Download Manager: Download manga from various sources
- π·οΈ Tagging System: Organize manga with custom tags and folders
- π₯ Multi-User Support: User management with different permission levels
- π Subscriptions: Track and download new chapters automatically
- π Progress Tracking: Keep track of your reading progress
There are two primary ways to run Mango-Go: via Docker (recommended for production) or as a standalone binary.
The recommended way to run Mango-Go in production is using Docker and Docker Compose.
-
βοΈ docker-compose:
services: mango: image: ghcr.io/vrsandeep/mango-go container_name: mango restart: unless-stopped ports: - "8080:8080" environment: - MANGO_DATABASE_PATH=/app/data/mango.db - MANGO_LIBRARY_PATH=/manga - MANGO_PLUGINS_PATH=/app/plugins #user: 1000:1000 # Add this optionally on linux systems volumes: # This will store the SQLite database - ./data:/app/data # Mount your actual manga library on your host machine to /manga inside the container. - ./manga:/manga # π This is safe. This project does not modify the manga folder. # Mount plugins directory to persist installed plugins - ./plugins:/app/plugins # This is where plugins will be stored
-
Start the Application:
docker-compose up -d
-
First Run (Admin User): The first time you start the application, it will create a default
adminuser. Check the container logs to get the randomly generated password:docker-compose logs
Look for a message like:
Default admin user created. Username: admin Password: <randomly_generated_password> -
Access Mango-Go: Open your web browser and navigate to
http://localhost:8080. Log in with the admin credentials and change the password immediately via the Admin > User Management page.
Go to Releases and download a binary of your OS. Follow Configure section from next option.
The application can be compiled into a single, portable binary file that contains all necessary web assets and migrations.
-
Build the Binary:
make build
-
Configure: Create a
config.ymlfile in the same directory as the binary as seen in config.yml -
Run the Application:
./mango-go
The application will start at
http://localhost:8080.
While Mango-Go can work with any folder structure, it's recommended to organize your manga library with series at the root level:
manga/
βββ One Piece/
β βββ Volume 1/
β β βββ Chapter 1.cbr
β β βββ Chapter 2.cbr
β βββ Volume 2/
β βββ Chapter 3.cbr
βββ Naruto/
β βββ Volume 1.cbz
β βββ Volume 2.cbz
βββ Dragon Ball/
βββ Chapter 1.zip
- Comic Book Archives:
.cbz,.cbr,.cb7 - Compressed Archives:
.zip,.rar,.7z
You can configure Mango-Go using environment variables:
| Variable | Description | Default |
|---|---|---|
MANGO_LIBRARY_PATH |
Path to manga library | ./manga |
MANGO_DATABASE_PATH |
SQLite database path | ./mango.db |
MANGO_PLUGINS_PATH |
Path to plugins directory | ../mango-go-plugins |
MANGO_PORT |
Web server port | 8080 |
MANGO_SCAN_INTERVAL |
Library scan interval (minutes) | 30 |
When using Docker, the docker-compose.yml file is configured to store all application data in a ./data directory on your host machine. Your manga library is mounted directly into the container and is never modified, ensuring your data is safe even if you update or restart the container.
Plugins installed via the Plugin Repositories interface are stored in the ./plugins directory (mounted to /app/plugins inside the container). This ensures that:
- Installed plugins persist across container restarts
- Plugin updates and installations are saved to your host machine
- You can manually manage plugins by adding/removing directories in the
./pluginsfolder
Note: The plugins directory will be created automatically if it doesn't exist. Make sure the directory has proper write permissions for the container user.
- Library Not Scanning: Check file permissions and ensure the manga directory is accessible
- Database Errors: Verify SQLite is properly installed and the database directory is writable
- Port Already in Use: Change the port in your configuration
Check application logs for detailed error information:
# Docker
docker-compose logs
# Standalone
./mango-go 2>&1 | tee mango.log- π Issues: Report bugs and request features on GitHub Issues
- β¨ Documentation: For contribution guidelines, see CONTRIBUTING.md
- Original Mango project for inspiration



