Kenku tracks manga and western comics: it searches its sources, downloads chapters
as .cbz archives, enriches them with metadata, and keeps the library organized.
Manga comes from scanlation/scrape sites; comics from direct-archive sites, comic
page readers, or torrents (indexers synced from Prowlarr, downloads via a download
client). Finished files can trigger library scans in Komga
and Kavita plus push notifications via Gotify,
Ntfy, Pushover and generic webhooks.
It ships as one Docker image: the .NET app serves the prerendered Nuxt UI
(from wwwroot) and the REST API on the same origin.
| Path | Part | Stack |
|---|---|---|
api/ |
Backend | .NET 10 ASP.NET Core REST API + workers |
web/ |
Frontend | Nuxt 4 / Vue 3, prerendered to static assets |
The frontend is a fully-typed client generated at build time from the backend's
OpenAPI spec (api/API/openapi/API_v2.json) and bundled into the API image. Because
UI and API share an origin there is no reverse proxy and no CORS hop: the SPA calls
/v2/... directly, and /swagger serves the API docs.
Published image: ghcr.io/chutch3/kenku.
# Build and run (app + Postgres)
UID=$(id -u) GID=$(id -g) docker compose up --build- Web UI: http://localhost:6531
- API docs: http://localhost:6531/swagger
See api/README.md and web/README.md for
component-specific details and configuration.
.
├── api/ # .NET backend (REST API + background workers)
│ ├── API/ # application + EF Core contexts + workers
│ └── Tests/ # xUnit tests
├── web/website/ # Nuxt frontend (prerendered into the API image)
├── Dockerfile # single image: builds web -> builds api -> bundles both
├── .github/workflows/ # CI: build (image), api-tests, web-tests
└── docker-compose.yaml # app + Postgres
Kenku is licensed under the GNU GPL v3 — see LICENSE. It builds on
prior GPL-3.0 work; the original authors are credited in NOTICE.