selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Nowen Reader logo

Self-host Nowen Reader

v1.2.3

Self-hosted comic and novel library with AI metadata

ReleaseOpen SourceGPL-3.0
Updated9 hours ago
LanguageTypescript
Setup difficultyEasy
MobileNative app
ThemeDark mode
Stars
180
RAM
512 MB
Port
3000 (HTTP server)
Docker
cropflre/nowen-reader
Install with Docker Compose

What is Nowen Reader?

Nowen Reader is a self-hosted comic and novel management and reading platform designed for NAS and personal servers. It supports manga formats like ZIP, CBZ, CBR, RAR, 7Z, CB7, and PDF, plus novel formats including TXT, EPUB, MOBI, AZW3, and HTML. Key capabilities include automatic library scanning, metadata fetching from AniList, Bangumi, MangaDex, MangaUpdates, and Kitsu, optional AI-assisted features like semantic search and smart tagging via 17+ LLM providers, OPDS 1.2 and OPDS-PSE 1.2 support for remote reading with KOReader and Moon+ Reader, a responsive web PWA with dark and light themes, and native Flutter apps for Android, iOS, and desktop. It runs as a single Go binary with embedded frontend, uses SQLite with WAL and FTS5 for zero-config storage, and provides Docker images for amd64 and arm64. Multi-user library permissions allow public, private, or group-based access control. The project is licensed under GPL-3.0.

Should you self-host Nowen Reader?

Nowen Reader scores 51/100 on selfhost.directory (how scoring works) and ranks #4 of 19 in Ebook Management. It has 180 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.2.3, came out on 25 October 2026. New versions land roughly every 3 days.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Calibre (83/100, 26 267 stars). It scores higher overall, so compare the two before you pick. See Nowen Reader vs Calibre side by side.

Features

  • AI-assisted featuresOptional, requires API keys
  • Automatic library scanning
  • Comic reading modes
  • Metadata Fetching
  • Multi-format comic support
  • Multi-format novel support
  • Multi-user library permissions
  • Native Flutter apps
  • OPDS Support
  • PDF renderingRequires poppler-utils or mupdf-tools (included in Docker)
  • Reading Progress Sync
  • REST API

Nowen Reader README

How to install Nowen Reader

Install Nowen Reader with Docker Compose

Docker and Docker Compose
Environment variables
PORT, BASE_PATH, TRUST_PROXY_HEADERS, DATABASE_URL, COMICS_DIR, NOVELS_DIR, DATA_DIR, GIN_MODE, TZ, PUID, PGID, UMASK, PERMISSION_FIX_MODE

1. 下载生产配置

curl -O https://raw.githubusercontent.com/cropflre/nowen-reader/main/docker-compose.prod.yml

2. 一键启动

docker compose -f docker-compose.prod.yml up -d

3. 打开浏览器访问

http://localhost:6680

Uses pre-built multi-platform image from Docker Hub

How to configure Nowen Reader

  • BASE_PATH/Sub-path deployment prefix (e.g. /reader)

    Sub-path deployment prefix (e.g. /reader)

  • COMICS_DIR./comicsMain comics directory

    Main comics directory

  • DATABASE_URL./data/nowen-reader.dbSQLite database file path

    SQLite database file path

  • DATA_DIR./.cacheData/cache directory for thumbnails, page cache, configs

    Data/cache directory for thumbnails, page cache, configs

  • GIN_MODEdebugGin framework mode

    Gin framework mode

    values: debug, release

  • NOVELS_DIR./novelsMain novels directory

    Main novels directory

  • PERMISSION_FIX_MODEautoPermission fix mode on startup

    Permission fix mode on startup

    values: auto, relaxed, off, recursive, recursive-relaxed

  • PGID1001Process GID for Docker permission mapping

    Process GID for Docker permission mapping

  • PORT3000HTTP service listening port

    HTTP service listening port

  • PUID1001Process UID for Docker permission mapping

    Process UID for Docker permission mapping

  • TRUST_PROXY_HEADERSfalseTrust X-Forwarded-* headers from reverse proxy

    Trust X-Forwarded-* headers from reverse proxy

    values: true, false

  • TZAsia/ShanghaiTimezone

    Timezone

  • UMASK0002File permission mask for new files

    File permission mask for new files

Nowen Reader releases & version history

FAQ

Webtoon 模式如何放大查看细节?

Double-tap image area to zoom to 200%, double-tap again to reset. Drag to pan while zoomed.

如何调整漫画图片亮度/对比度/灰度?

Open settings panel in comic reader, find Image Filters section, adjust sliders or apply presets like night mode, old comic enhance, B&W enhance.

内存占用多少?

Typical usage 100-200 MB. NAS compose sets 512 MB limit which is sufficient.

数据库在哪里?需要备份吗?

Database is at ${DATA_DIR}/nowen-reader.db (Docker: /data/nowen-reader.db). Strongly recommended to back up regularly as it contains all user data, reading history, metadata, etc.

NAS 上遇到 permission denied 怎么办?

Set PUID/PGID to host file UID/GID in compose environment. For SMB/NFS where chown fails, enable PERMISSION_FIX_MODE=relaxed.

如何更新到最新版本?

For Docker: docker compose pull && docker compose up -d. For binary: download latest release and replace binary.

为什么上传时看不到某个书库?

Library must be enabled, have a configured non-empty rootPath, and match the content type (comic/mixed for comics, novel/mixed for novels).

上传文件保存在哪里?

If a library is selected, files go to that library's rootPath. Otherwise, comics go to comicsDir and novels to novelsDir.

如何使用 OPDS?

Add http://your-ip:6680/api/opds to OPDS-compatible readers like KOReader or Moon+ Reader. Use username and API key (not password) for authentication.

如何配置 AI 功能?

Go to Settings → AI Panel, select provider, enter API key, choose model, test connection, and save. AI is optional and doesn't affect core features.

PDF 无法渲染怎么办?

PDF rendering uses pdftoppm, mutool, or ImageMagick convert. Docker includes poppler-utils and mupdf-tools; for non-Docker installs, install poppler-utils.

缩略图不显示怎么办?

Thumbnails use cwebp, ffmpeg, or fallback to Go JPEG. Docker includes cwebp. Check system diagnostics and trigger batch generation in Settings.

如何添加漫画/小说?

Place files in comics/ or novels/ directories for auto-scan, use Web UI upload, or add extra directories in Settings.

SQLite "out of memory" 错误怎么办?

Usually a directory permission issue, not actual memory shortage. Docker entrypoint auto-fixes permissions; for manual runs ensure data/ directory is writable.

Docker 启动后无法访问怎么办?

Check port mapping (default 6680:3000), firewall rules, Docker service status, and container logs.

More in Ebook Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…