All apps · 0 apps
uchiyomi-suwayomi
Docker app from irxs' Repository
Overview
Readme
View on GitHubUchiyomi
Self-hosted manga server that downloads too — a manga, manhwa and webtoon reader that keeps up with new chapters on its own.
🌐 uchiyomi.com · 🐙 GitHub · ☕ Ko-fi · 📜 Changelog
A self-hosted manga server that runs on your own hardware. It stores and serves your library the way Komga or Kavita do, and it also downloads and watches for new chapters the way a source app does — in one Docker image, behind a true-black OLED interface with a vertical-scroll webtoon reader at the centre, installable as an app on any device.
If you already run Sonarr for TV and Radarr for films, this is the same idea for manga, except the reader is included: the indexer, the scheduler, the downloader, the Cloudflare solver and the media server are one container instead of five. The whole mapping is in the comparison — an *arr stack for manga, without the stack.
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: you point Uchiyomi at an extension repository you trust (how), and from then on its extensions are browsable in the admin panel, installable with one click and searchable immediately, run by a bundled engine (Suwayomi-Server, headless: you never open it) that starts with the stack and is optional; MangaDex and sites you add by URL work without it. And generic engines for the common manga-site families, where you paste a site's URL yourself. Plus MangaDex, via its official public API.
Uchiyomi hosts no sources, ships no extensions and compiles nothing into the image; no source is enabled until you choose one. 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
Reading
- 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 collapsed into a band you can tap open (or hide entirely, or show everything).
- 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.
- 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.
Your library
- Files you already own — CBZ, CBR, PDF, image EPUB or a folder of images, in any folder layout.
- Library management — several libraries, a filter panel (sort, read state, status, format, genres), Select all with bulk fetch and removal, editable metadata that survives a rescan, merge, delete, restore and forget.
- Health — finds chapter gaps, suspiciously short chapters, bad downloads, duplicates and failing sources, and names the step a source fails at. Every fix says what it does and how long it usually takes before you press it, shows its progress live, and keeps what it did; Verify chapter files re-checks that what the database claims is on disk actually is.
- Import what you already track — a Mihon backup, a MangaDex list, a pasted list of titles, or your AniList / MyAnimeList / Kitsu list. Every match is reviewed before it lands, with a confidence score, Change and Skip, and batches you can resume.
Fetching
- ~1,400 Mihon / Tachiyomi extensions from a repository you add, plus generic engines for common site families (paste a URL) and MangaDex. Nothing is enabled until you choose it, and each extension's own settings are one click away, as in Mihon.
- Discover — what your sources just published, grouped by language, and a search that answers progressively: results appear as each source replies instead of waiting for the slowest, and every source says whether it answered, failed or timed out.
- Follows a series on more than one source, and when a chapter will not come down it tries the other copies, then other sources, before giving up.
- Chooses the translation — prefer or block scanlation groups, server-wide or per series; wait a couple
of days for a preferred group; see every version of a chapter and fetch a specific one. The group is
written into the file as ComicInfo
<Translator>. - Shows you what you do not have — chapters the sources list but your disk lacks appear as grey rows you can select and fetch.
- Library → Downloads — everything the server is fetching, whoever started it, as covers that fill like apps being installed, with what came in today; a ring on the Library tab says when something is coming in.
- A slow archive — a whole back catalogue fetched a chapter at a time over nights or days, with the random pauses of someone reading, so a site never sees a burst; it survives restarts and never counts as new chapters.
- Numbers webtoon posts in the order they were posted — a source that gives many different posts one chapter number (an episode split into parts) no longer reads as a few chapters with dozens of versions.
- Survives real-world sources — it slows down when a site rate-limits instead of hammering it, and a chapter missing a handful of pages is kept as a partial, with placeholders, and repaired overnight rather than thrown away.
Household
- Multi-user — accounts, per-user progress and favourites, streaks and a leaderboard.
- Age ratings and an 18+ library that stays off the home screen, the grid and search until somebody asks for it, with a per-member rating cap and a per-member permission to add series at all.
- Security — 2FA, lockout, active sessions, an audit log, and OIDC single sign-on against Authentik, Authelia or Keycloak.
- Scoped API tokens — read, write or admin, revocable, with an opt-in for 18+ libraries.
- Automatic nightly backups of the database and config, rotated and restorable, at an hour you pick.
Beyond the browser
- Push notifications when a followed series gets a new chapter, and one digest per library update to a webhook, Home Assistant, ntfy or Discord.
- 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 own 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.
- Nine languages, with right-to-left layout for Arabic.
- A Windows and macOS app (beta) — the whole thing as a program on your own computer, with the library in a folder there and no server to run; or, if you already run a server, a window onto it: download the desktop app.
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
Rather not run a server at all? The desktop app below is the same Uchiyomi on your own Windows PC or Mac.
Download the desktop app
Uchiyomi Desktop (beta) for Windows and Mac. On first launch it asks how you want to use it: on this computer (the whole app, with the library in a folder on your PC and no Docker, server or account) or connected to your server (a window onto the Uchiyomi you already run).
| Your computer | Download (always the newest version) |
|---|---|
| Windows (x64) | Uchiyomi-Setup.exe |
| Mac with Apple silicon (M1 or newer) | Uchiyomi-mac-arm64.dmg |
| Mac with an Intel processor | Uchiyomi-mac-x64.dmg |
- Windows: run it; it installs for your account with no administrator prompt. The first time, choose More info → Run anyway on "Windows protected your PC" (the app is not signed yet).
- Mac: drag Uchiyomi to Applications. The first time, macOS refuses to open it; choose Open Anyway in System Settings → Privacy & Security. Not sure which Mac? Apple menu → About This Mac: Chip means Apple silicon, Processor means Intel.
Everything else — step by step with pictures, the two modes, adding sources, updates, backups, where files live, uninstalling — is in the desktop guide. No Linux or Windows on Arm build; use Docker there.
Documentation
| Usage | Every screen, with screenshots |
| Install | One-click stores, updating, HTTPS, external DB |
| Desktop app | Uchiyomi Desktop for Windows and macOS (beta): on your computer, or a window onto your server |
| Configuration | Environment variables and source paths |
| Extensions | Adding an extension repository, step by step; 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 browsing — browsing one source's newest and popular titles already works; genres are the part still missing.
- 📱 Native App Store and Play builds — the PWA installs on both today; wrapping it properly is planned.
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-suwayomi on Unraid in a few clicks.
Find uchiyomi-suwayomi 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.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/suwayomi/suwayomi-server:v2.3.2243Runtime arguments
- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--memory=1536m
Template configuration
The port Uchiyomi talks to: SUWAYOMI_URL is http://YOUR-SERVER-IP:4567. Its own web page is off.
- Target
- 4567
- Default
- 4567
- Value
- 4567
Installed extensions, and the links for every series added through them. Never delete it. It is not in Uchiyomi's nightly backup: back it up with your appdata. Must belong to user 1000 (see the overview).
- Target
- /home/suwayomi/.local/share/Tachidesk
- Default
- /mnt/user/appdata/uchiyomi-suwayomi
- Value
- /mnt/user/appdata/uchiyomi-suwayomi
The same FlareSolverr address as Uchiyomi's FLARESOLVERR_URL, e.g. http://192.168.1.10:8191. Without it, extension sources behind Cloudflare fail with Cloudflare bypass currently disabled.
Let the engine use that FlareSolverr. It has no browser of its own.
- Default
- true
- Value
- true
The engine's heap cap, the same as the desktop app's. Raise it (and the memory limit in Extra Parameters) only for a very long extension list.
- Default
- -Xmx768m -XX:+UseSerialGC
- Value
- -Xmx768m -XX:+UseSerialGC
Keep false: Uchiyomi does the downloading and owns the library. True would fill this folder with a second, unmanaged copy.
- Default
- false
- Value
- false
Keep true.
- Default
- true
- Value
- true
The engine's own web page. Off: the port is on your network, and Uchiyomi is the interface.
- Default
- false
- Value
- false
Time zone for the engine's logs.
- Default
- Etc/UTC
- Value
- Etc/UTC
Optional: basic_auth to require a user name and password on the engine's port. Then set the same two on Uchiyomi as SUWAYOMI_USERNAME and SUWAYOMI_PASSWORD. Leave empty for none.
With AUTH_MODE basic_auth.
With AUTH_MODE basic_auth.
