Skip to content
nils010485Public

About

Tanko is a downloader for manga / manhwa scans. Think Sonarr, but for your chapters: follow a series once and new releases land automatically as CBZ. Pings you on Discord or ntfy, and falls back to mirrors when a site goes down.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Tanko

⚠️ Work in progress: Tanko is under active development and not yet stable. Features may change or break without notice.

Tanko is a headless manga and manhwa downloader and tracker with a web dashboard. It is based on the engine of HakuNeko, whose source connectors it reuses, kept up to date automatically. Tanko also ships its own native connectors for good sources HakuNeko lacks, and they win when both provide the same site. It works like a Sonarr for manga: follow series, detect new chapters, download them automatically, and get notified. Sources are managed for you: the list syncs automatically, unhealthy sources are filtered out, and downloads fail over to a working one, so your chapters stay up to date without you ever managing source outages.

Library view with followed series and covers Discover view for searching sources
Tasks view with scheduled checks, maintenance tools and better-source scan

Features

  • Source catalog synced from HakuNeko and extended with our own connectors, with health checks
  • Sonarr-like library: follow series, auto-download new chapters
  • Persistent download queue with retries and rate limiting
  • CBZ or image folder output, HakuNeko-compatible layout, fully compatible with readers such as Komga
  • Dark web dashboard (English/French) with live updates
  • Optional first-chapter thumbnails cached locally
  • Cron scheduler with Discord/ntfy notifications
  • Existing library import and source failover

Quickstart (Docker)

Requirements

Measured on the shipped Docker image:

  • RAM: ~100 MB at idle, but the embedded headless Chromium (anti-bot fallback) adds ~800 MB as soon as a protected source is checked and stays resident. 1 GB works; 2 GB is comfortable.
  • Disk: ~1.4 GB image + your library.
  • Docker or Podman; or Node.js >= 22 to run outside a container (Chromium is optional there — only used if a system binary is present).
cp docker-compose.yml.example docker-compose.yml
docker compose up -d --build

The dashboard is at http://localhost:8080. All data (SQLite database, settings, downloaded library) lives in ./data, mounted as /data in the container.

Podman works too: the image is OCI-compatible, podman build -t tanko . or podman-compose up -d with the same compose file.

Building from GitHub without cloning:

docker build -t tanko:latest github.com/nils010485/tanko#latest   # stable release
docker build -t tanko:nightly github.com/nils010485/tanko         # latest main

Configuration

Chapter format, download parallelism (parallel sources × chapters per source), throttle and preferred languages are user settings: change them anytime in the dashboard's Settings tab, they are persisted in the database.

Environment variables, set in docker-compose.yml (deployment only):

Variable Default Description
PORT 8080 HTTP port of the service
CONNECTORS_AUTO_RESTART 1 restart after a source sync to load new connectors; 0 disables
IMPORT_PATH (empty) container path of an existing library to import at startup
IMPORT_AUTO_CONFIRM auto auto confirms reliable matches, all confirms everything, none requires manual validation
IMPORT_AUTO_DOWNLOAD 0 1 makes imported series auto-download future chapters

Development

Requires Node.js >= 22.

npm install
npm run build
DATA_DIR=./data node packages/server/dist/index.js

With hot reload:

npm run dev

Tests:

npm test

Git hooks

A versioned pre-push hook runs lint + tests before every push. Activate it once per clone:

git config core.hooksPath .githooks

Monorepo layout

packages/
├── shared/     # shared DTO types (REST + WebSocket)
├── core/       # headless engine + connectors
│   └── vendor/ # HakuNeko connectors, synced automatically
├── server/     # Fastify + SQLite (node:sqlite), download queue, scheduler
└── dashboard/  # Vite + React + Tailwind, dark theme, EN/FR

Notes

  • The legacy connectors come from the HakuNeko repository. Some sites have changed or block scraping. The health check and the working-sources filter help sort it out. Key sites can be added as native connectors in packages/core/src/sources/native/.
  • Respect the source sites: throttling is enabled by default, avoid overly frequent checks.

License

MIT, see LICENSE. The HakuNeko connectors in packages/core/vendor/ are public domain (Unlicense), see the upstream repository for details.

About

Tanko is a downloader for manga / manhwa scans. Think Sonarr, but for your chapters: follow a series once and new releases land automatically as CBZ. Pings you on Discord or ntfy, and falls back to mirrors when a site goes down.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages