All apps · 0 apps
uchiyomi
Docker app from irxs' Repository
Overview
Readme
View on GitHubUchiyomi
A self-hosted manga and manhwa reader that also keeps up with new chapters: one installable PWA, true-black OLED, webtoon-first.
🌐 uchiyomi.com · 🐙 GitHub · ☕ Ko-fi · 📜 Changelog
A self-hosted, installable (PWA) manga / manhwa reader with a true-black OLED interface and a vertical-scroll webtoon reader as the centerpiece. Point it at your own CBZ library and read on any device.
Uchiyomi is a bring-your-own-library reader first: like Komga / Kavita / Calibre-web, it reads comics you supply, and the library and reader work on nothing but files you already own.
It also fetches, by two routes, and both ship in the default install. Mihon / Tachiyomi extensions: a browsable catalogue of ~1,400 community extensions, installed with one click in the admin panel and searchable immediately, run by a bundled engine that starts with the stack. And generic engines for the common manga-site families, where you paste a site's URL yourself. Plus MangaDex, via its official public API.
No source is enabled until you choose one, and nothing is compiled into the image. But the catalogue arrives wired up and one click away, so calling this a reader alone would undersell what it does. You pick what to enable, and you are responsible for using it in line with those sites' terms and your local law.
📖 Full usage guide →: every screen walked through with screenshots (library, reader, Discover, admin, security, offline).
Features
- Webtoon-first reader — vertical scroll or paged, RTL, double-page spreads, per-series settings.
- Skips the pages that are not the story — the scanlator credit page that opens every chapter is found by repetition and left out of the flow, with a tap to bring it back.
- True-black OLED interface, built for a phone and installable as a PWA.
- Offline downloads — save chapters to the device and read them with no connection at all.
- Your own library — CBZ, CBR, PDF, image EPUB or a folder of images, in any folder layout.
- Also fetches — ~1,400 Mihon / Tachiyomi extensions installable in one click, generic engines for common site families, and MangaDex. Nothing is enabled until you choose it.
- Discover — what your sources just published, grouped by language, plus search across every source.
- Multi-user — accounts, per-user progress and favourites, age ratings, per-member library access.
- Library management — several libraries, filters, bulk actions, editable metadata that survives a rescan, series merge, delete and restore.
- Moments — star a page and it lands on its own screen as the panel itself, with notes.
- Reading Studio & Wrapped — a year heat-map, chapters by month and weekday, your top series and genres.
- Push notifications when a followed series gets a new chapter.
- OPDS — read from Panels, Chunky or KOReader, page by page over OPDS-PSE.
- A Mihon / Tachimanga extension — read your library from Mihon, any Tachiyomi fork, Tachimanga (iOS) or Suwayomi with one API token: uchiyomi-extension.
- A Komga-compatible API — point Mihon's Komga extension at Uchiyomi instead and its built-in Komga tracker syncs reading progress back in both directions, forward-only: how to set it up.
- Progress sync to AniList, MyAnimeList and Kitsu.
- Nothing phones home. An update check reads GitHub's public releases page and sends nothing about your server; it can be turned off. An anonymous install count exists and is off unless you turn it on, and the settings page shows you the exact object it would send before you agree to it — a monthly-rotating id, the version, the CPU architecture and which deployment shape you run. No library, no titles, no accounts, no address. What leaves your server.
📖 Every screen walked through with screenshots: docs/USAGE.md
Install
Requirements: Docker and Docker Compose, plus a manga library on disk. Any folder layout works — a directory counts as a series when it directly contains chapters, at whatever depth.
Don't clone the repo to install it. The top-level
docker-compose.ymlbuilds from source and is the development stack. The two commands below are the whole install.
curl -O https://raw.githubusercontent.com/AngeloSha/uchiyomi/main/deploy/docker-compose.yml
docker compose up -d
Open http://localhost:8080 and create your admin account in the browser. Nothing to generate, no config file to edit. That is Uchiyomi in one container with Postgres inside it; multi-arch images (amd64 + arm64) mean it comes up in seconds on a NAS or a Raspberry Pi.
📦 CasaOS, Unraid, Umbrel, an external database, reverse proxies and updating: docs/INSTALL.md
Documentation
| Usage | Every screen, with screenshots |
| Install | One-click stores, updating, HTTPS, external DB |
| Configuration | Environment variables and source paths |
| Extensions | The Mihon / Tachiyomi engine |
| API | REST reference |
| Migrating | Moving between layouts and versions |
| Comparison | How it differs from Komga, Kavita, Mihon and Suwayomi |
Translations
The interface ships in English, Spanish, French, German, Portuguese (Brazil), Russian, Japanese, Chinese and Arabic, with right-to-left layout for Arabic. Pick one under Profile → Settings → Language; the choice follows your account to other devices.
Everything except English is machine-assisted and has not been checked by a native speaker. If something
reads wrong, it is one JSON file per language in web/public/locales/ and the keys are
the English source strings — edit a value, open a pull request, done. A missing key falls back to English
rather than showing a blank or a placeholder, so a partial translation is always safe to ship.
Adding a language: copy en semantics into web/public/locales/<code>.json, add the code to LOCALES in
web/lib/i18n.ts, and set dir if it is right-to-left.
Roadmap
Actively developed. On deck:
- 🧭 Per-source genre & popular browsing — rounding out the newest-releases rails.
Everything already shipped is in the changelog.
Support
Uchiyomi is free and open-source. If it's useful to you, you can help fund continued development:
You'll also find a ♡ Sponsor button at the top of this repo's GitHub page, and a Support Uchiyomi link inside the app on the Profile rail.
Contributors
Uchiyomi is built and maintained by @AngeloSha. Pull requests, bug reports, and feature ideas are all welcome: start with CONTRIBUTING.md, or open an issue.
- 💬 Discussions — questions, ideas, and what you've built with it
- 📜 Releases / Changelog — watch the repo to hear about new ones
- 🔒 Security policy — please report vulnerabilities privately
Thanks to everyone who has helped build Uchiyomi:
That image is drawn from GitHub's contributors graph, which only counts the author of a commit. Some help arrives as a report or a diagnosis that lands as someone else's commit, and is invisible there — so it is named here instead:
- Unraid install instructions, and a template that installs — @hawwwwwk,
who spotted that Unraid had removed the Template repositories field the docs told people to use, and
opened pull requests against both this repo and
unraid-templates; then came back with PR #50, which found that the very fix for that report had left the template invalid XML (a--inside a comment, so nothing could install it), fixed it, and laid this repository out as the Community Applications template repository (templates/uchiyomi.xml,ca_profile.xml).unraid-templatesis now only a pointer here. - The scanner finding zero series in a Tranga library — @ThomasRunting, who did not stop at the bug report: they read the scanner, found the early return that made a cover image turn a whole series folder into a "chapter of the root", proved it against their own 38-series library, and proposed the one-line fix (#34).
License
MPL-2.0. Source plugins are not part of this repository; they fetch from third-party sites and are your responsibility to use in line with those sites' terms and your local law.
Install Uchiyomi on Unraid in a few clicks.
Find Uchiyomi in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/angelosha/uchiyomiRuntime arguments
- Web UI
http://[IP]:[PORT:3000]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--stop-timeout 40
Template configuration
The port you open in a browser.
- Target
- 3000
- Default
- 8080
- Value
- 8080
Your existing CBZ/CBR library. Any folder layout works. Set PUID/PGID to the owner of these files for renames and deletes; otherwise it is read-only.
- Target
- /library
- Default
- /mnt/user/media/comics
- Value
- /mnt/user/media/comics
Postgres lives here. Back it up like any appdata, or rely on the nightly dump in Backups.
- Target
- /data
- Default
- /mnt/user/appdata/uchiyomi/data
- Value
- /mnt/user/appdata/uchiyomi/data
Secrets, custom sites, art overrides.
- Target
- /config
- Default
- /mnt/user/appdata/uchiyomi/config
- Value
- /mnt/user/appdata/uchiyomi/config
Chapters Uchiyomi fetches from sources.
- Target
- /library-dl
- Default
- /mnt/user/appdata/uchiyomi/downloads
- Value
- /mnt/user/appdata/uchiyomi/downloads
Safe to delete.
- Target
- /cache
- Default
- /mnt/user/appdata/uchiyomi/cache
- Value
- /mnt/user/appdata/uchiyomi/cache
Nightly database and config dumps. Ideally a different disk from Data.
- Target
- /backups
- Default
- /mnt/user/appdata/uchiyomi/backups
- Value
- /mnt/user/appdata/uchiyomi/backups
Run as this user id (Unraid's nobody is 99). Use the owner of your library to allow renames and deletes.
- Default
- 99
- Value
- 99
Run as this group id (Unraid's users is 100).
- Default
- 100
- Value
- 100
How you reach it, e.g. http://192.168.1.10:8080 or https://manga.example.com. Must match, or logins and cookies break.
A FlareSolverr instance for Cloudflare-protected sources, e.g. http://192.168.1.10:8191. Optional.
A Suwayomi server for Mihon/Tachiyomi extensions, e.g. http://192.168.1.10:4567. Leave empty to go without extensions. The engine cannot solve Cloudflare on its own: set FLARESOLVERR_ENABLED=true and FLARESOLVERR_URL (your FlareSolverr, e.g. http://192.168.1.10:8191) on the Suwayomi container itself, or extension sources behind Cloudflare fail with Cloudflare bypass currently disabled.
How many nightly backups to keep.
- Default
- 14
- Value
- 14
