A self-hosted server for your manga, anime and light novels. Point it at your folders, then read and watch from a browser on your PC, phone or tablet.
It reads the files you already have. It does not download anything, and it ships with no content.
- Manga reader for
.cbz,.zipand image folders. Scroll, single page or two-page spread, left-to-right or right-to-left, tap zones and swipe on phones, keyboard on desktop. - Anime player with direct play where the browser can handle it, and on-the-fly HLS through ffmpeg where it cannot. Audio and subtitle track selection, styled subtitles, skip intro, next episode.
- Light novel reader for
.epubfiles, with themes, fonts, a table of contents and resume position. - Doujin section kept apart from everything else, with an optional PIN.
- Metadata from AniList and MangaDex: covers, banners, descriptions, genres, scores. Fix any match by hand.
- Progress is remembered per chapter, and can be synced to your AniList account.
- Chapter detection for volumes that are not split into chapters, using OCR on title pages.
- Rescans keep your data. Renaming a file or folder does not lose progress, splits or edits.
- Self-updating if you give it an update server, with signature checks and automatic rollback.
- Works as a web app on any device. No account, no cloud.
- Install Node.js 22 or newer.
- Download or clone this repository and run
npm install. - Double-click
MangaSoft.vbsto run in the system tray, orstart.batfor a console window. - Open http://localhost:8484, then Settings, Library folders, Add folder.
git clone https://github.com/Itsukos/MangaSoft.git
cd MangaSoft
# edit the paths in docker-compose.yml
docker compose up -d --build
Or pull the prebuilt image:
docker run -d --name mangasoft -p 8484:8484 \
-v ./config:/config \
-v /path/to/manga:/media/manga:ro \
-e MANGA_DIR=/media/manga \
ghcr.io/itsukos/mangasoft:latest
Unraid users can use the template in docker/unraid-mangasoft.xml.
npm install
npm start
Node 22.13 or newer is required. ffmpeg is bundled on Windows and used from the system in Docker. On other systems install ffmpeg yourself if you want the anime section.
Manga/
One Piece/
Chapter 001/001.jpg, 002.jpg ...
One Piece - c002.cbz
Berserk/Vol 01/Ch 001/...
Some Oneshot.cbz
Anime/
Show Name/
[Group] Show Name - 01 [1080p].mkv
Season 2/Show Name S02E01.mkv
Light Novels/
Series Name/
Series Name - Volume 01.epub
Series Name - Volume 02.epub
Details for each section are in docs/libraries.md.
| Installation | Windows, Docker, Unraid and running from source |
| Libraries | Folder layout, naming and metadata for each section |
| Configuration | Environment variables, ports, data folder |
| Anime and playback | Codecs, transcoding, subtitles, hardware encoding |
| AniList | Connecting your account and syncing progress |
| Updates | In-app updates and hosting your own update channel |
| Troubleshooting | Common problems |
| Contributing | Building, code layout, pull requests |
There is no login. Anyone who can reach the server can read your library. Keep it on your home network, or put it behind a reverse proxy or VPN that handles authentication. The doujin PIN is a privacy lock, not security. See SECURITY.md.
Everything is stored in the data folder next to the app (or /config/data in Docker). The server contacts
AniList and MangaDex for metadata, nhentai if you use the doujin section, and an update server only if you set one.
Your files and reading history are never sent anywhere.
MangaSoft is a reader and player for files you already own. It does not provide, host or link to any copyrighted material. You are responsible for the content you put in your own library. The doujin metadata lookup uses nhentai's public API and is off until you add a doujin folder.
Built on Express, hls.js, sharp, tesseract.js, JASSUB and ffmpeg, with metadata from AniList, MangaDex and Jikan. Full list and licenses in THIRD_PARTY_NOTICES.md.
Come yell at me. Twitter: @Itsukos, Discord: Itsuko.
GPL-3.0-or-later. See LICENSE.