Tranga
Monitor and download Manga automatically in a Docker-Container.
Install / Use
/learn @C9Glax/TrangaREADME
<span id="readme-top"></span>
<div align="center"> <h1 align="center">Tranga v2</h1> <p align="center"> Automatic Manga and Metadata downloader </p>About The Project
Tranga can download Chapters and Metadata from "Scanlation" sites such as
- MangaDex.org (Multilingual)
- MangaWorld (it)
- AsuraComic (en) thanks @yacob841
- WeebCentral (en) thanks @TheyCallMeTravis
- ❓ Open an issue
and trigger a library-scan with Komga and Kavita.
Notifications can be sent to your devices using Gotify, LunaSea or Ntfy, or any other service that can use REST Webhooks.
What this program does and does not do
DOES: Download Images from a Website.<br /> DOES: Create Archives with those images.<br />
how?
Tranga (this repository) is a REST-API and worker in one. Tranga provides REST-Endpoints to configure workers (Jobs).
Requests include searches for Manga, creating and starting Jobs such as downloading available chapters.
For available endpoints check http(s)://<hostedInstance>/swagger or API/openapi/API_v2.json
This repository does not include a frontend. A frontend can take many forms, such as a website:
tranga-website (Original, if you use the docker-compose.yaml in this repo it will spin up an instance for this)
tranga-yacobGUI (Third Party)
When downloading a chapter (meaning the images that make-up the manga) from a Website, Tranga will additionally try and fetch Metadata from the same website or enhance it from third-party sources. Downloaded images can be jpeg-compressed and/or made black and white to save on diskspace (measured at least a 50% reduction in size, without a significant loss of quality).
Tranga will then package the contents of each chapter in a .cbz-archive and place it in a common folder per Manga.
If specified, Tranga will then notify library-Managers such as Komga and Kavita to trigger a scan for new
chapters. Tranga can also send notifications to your devices via third-party services such as Gotify, Ntfy,
or any other REST Webhook.
Screenshots
This repository has no frontend, however checkout tranga-website for a default!
Inspiration:
Because Kaizoku was relying on mangal and mangal hasn't received bugfixes for its issues with Titles not showing up, or throwing errors because of illegal characters, there were no alternatives for automatic downloads. However, Kaizoku certainly had a great Web-UI.
That is why I wanted to create my own project, in a language I understand, and that I am able to maintain myself.
<p align="right">(<a href="#readme-top">back to top</a>)</p>Endpoint Documentation
Checkout openapi/API_v2.json
The container also spins up a Swagger site at http://<url>/swagger.
Built With
💙 Blåhaj 🦈
- ASP.NET
- PostgreSQL
- Swagger
- Newtonsoft.Json
- Sixlabors.ImageSharp
- Html Agility Pack (HAP)
- Puppeteersharp
- Soenneker.Utils.String.NeedlemanWunsch
- Jikan
- BuildInformation
- GitInfo
- Log4Net
- xUnit
Star History
<a href="https://star-history.com/#c9glax/tranga&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=c9glax/tranga&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=c9glax/tranga&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=c9glax/tranga&type=Date" /> </picture> </a> <!-- GETTING STARTED -->Getting Started
<p align="right">(<a href="#readme-top">back to top</a>)</p>Docker
Built for AMD64. Also available for ARM64 and ARMv7 if it feels like it (dependencies aren't always your friend).
An example docker-compose.yaml is provided. Mount /Manga to wherever you want your chapters (.cbz-Archives)
downloaded (where Komga/Kavita can access them for example).
The file also includes tranga-website as frontend. For its configuration refer to the
Tranga-Website Repository README.
| Environment Variable | default | Description |
|-----------------------------------|------------------|------------------------------------------------------------------------------------------------------------------|
| PORT | 6531 | Port for the API Endpoints (Don't change this unless you know what you are doing) |
| POSTGRES_HOST | tranga-pg:5432 | host-address of postgres database (Don't change!) |
| POSTGRES_DB | postgres | name of database |
| POSTGRES_USER | postgres | username used for database authentication |
| POSTGRES_PASSWORD | postgres | password used for database authentication |
| DOWNLOAD_LOCATION | /Manga | Target-Directory for Downloads (Path inside the container! Don't change!) |
| FLARESOLVERR_URL | <empty> | URL of Flaresolverr-Instance |
| POSTGRES_COMMAND_TIMEOUT | 60 | Timeout of Postgres-commands |
| POSTGRES_CONNECTION_TIMEOUT | 30 | Timeout for postgres-databaes connection |
| CHECK_CHAPTERS_BEFORE_START | true | Whether to update database downloaded chapters column on startup (takes a while) |
| MATCH_EXACT_CHAPTER_NAME | true | Match the store
Related Skills
imsg
349.9kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
349.9kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
lobster
349.9kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
