SkillAgentSearch skills...

Tranga

Monitor and download Manga automatically in a Docker-Container.

Install / Use

/learn @C9Glax/Tranga

README

<span id="readme-top"></span>

<div align="center"> <h1 align="center">Tranga v2</h1> <p align="center"> Automatic Manga and Metadata downloader </p>

GitHub License

<table> <tr> <th><img alt="GitHub branch check runs" src="https://img.shields.io/github/check-runs/c9glax/tranga/main?label=main"></th> <td><img alt="Last Run" src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fc9glax%2Ftranga%2Factions%2Fworkflows%2Fdocker-image-main.yml%2Fruns%3Fper_page%3D1&query=workflow_runs%5B0%5D.created_at&label=Last%20Run"></td> </tr> <tr> <th><img alt="GitHub branch check runs" src="https://img.shields.io/github/check-runs/c9glax/tranga/cuttingedge?label=cuttingedge"></th> <td><img alt="Last Run" src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fc9glax%2Ftranga%2Factions%2Fworkflows%2Fdocker-image-cuttingedge.yml%2Fruns%3Fper_page%3D1&query=workflow_runs%5B0%5D.created_at&label=Last%20Run"></td> </tr> <tr> <th><img alt="GitHub branch check runs" src="https://img.shields.io/github/check-runs/c9glax/tranga/testing?label=testing"></th> <td><img alt="Last Run" src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fc9glax%2Ftranga%2Factions%2Fworkflows%2Fdocker-image-testing.yml%2Fruns%3Fper_page%3D1&query=workflow_runs%5B0%5D.created_at&label=Last%20Run"></td> </tr> <tr> <th><img alt="GitHub branch check runs" src="https://img.shields.io/github/check-runs/c9glax/tranga/oldstable?label=oldstable"></th> <td><img alt="Last Run" src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fc9glax%2Ftranga%2Factions%2Fworkflows%2Fdocker-image-oldstable.yml%2Fruns%3Fper_page%3D1&query=workflow_runs%5B0%5D.created_at&label=Last%20Run"></td> </tr> </table> </div> <!-- ABOUT THE PROJECT -->

About The Project

Tranga can download Chapters and Metadata from "Scanlation" sites such as

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.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

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 🦈

<p align="right">(<a href="#readme-top">back to top</a>)</p>

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

View on GitHub
GitHub Stars360
CategoryDevelopment
Updated4d ago
Forks42

Languages

C#

Security Score

100/100

Audited on Apr 1, 2026

No findings