Skip to content
tinywindPublic

About

Norea is a local-first light novel, webtoon, and manga reader for Windows and Android.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Norea

Norea is a local-first reader for light novels, webtoons, and manga on Windows and Android. It keeps your reading sources, library, downloads, and progress in one app.

Norea is inspired by lnreader/lnreader, but it is a separate app with its own data, backup, and source system.

Screenshots

Dark library list with reading progress and unread counts

Installed source search results Reader view on a narrow window Reader settings panel over the reading view

Webtoon and manga reading

Norea supports image-based chapters as well as text. Scroll through long-strip webtoons or read manga and comics page by page.

A long-strip webtoon chapter in Norea's scrolling reader A page-based manga chapter in Norea's reader

What you can do

  • Browse and search installed reading sources.
  • Add novels to your library and organize them with categories. Add or remove category assignments for selected works, or edit them from the work home.
  • Choose the category shown when entering the library, with All as the default.
  • Filter by unread, downloaded, local, and fully read tags. Tablet and desktop layouts expose these filters directly; narrow layouts include them in the category drawer. Select all filtered works beside Download, including works beyond the currently loaded page.
  • Sort your library by undownloaded chapter count, from fewest or most first.
  • Import local plain text, HTML, Markdown, EPUB, and PDF files.
  • Open TXT, Markdown, EPUB, and PDF files with installed Windows or Android builds, add them as chapters of the shared local work, and open the selected file in the reader.
  • Cache rendered chapter media for offline reading.
  • Route source-plugin requests through an app-local OpenVPN tunnel on Windows and Android, using an imported .ovpn profile or the built-in VPN Gate server finder. Connecting another profile disconnects the current tunnel first. The finder hides servers you marked X by default, with an option to show them. Reopening the finder reuses the fetched list; Refresh fetches it again.
  • Keep local files in one work on Windows and Android, reorder its chapters, and manage local metadata with locally uploaded cover images.
  • Read text, webtoon, and manga chapters in paged or scrolling mode.
  • Change themes, font size, text color, tap zones, and keyboard navigation.
  • Track reading progress, history, unread chapters, and downloaded chapters.
  • Download chapters for later reading. Library batch downloads remain available whenever selected works have undownloaded chapters outside the current download queue. Select one or more chapters to download missing chapters before the lowest selected chapter position, regardless of the displayed sort order.
  • Share complete chapters through an optional content server. Browse its works under Browse -> Content server, add them to your library, and download chapters without waiting for a full sync. Devices register automatically. Search and source filters remain when returning from a work.
  • Save a complete device database and settings snapshot to the content server under your device name. Select any saved device backup to replace this app's local database, installed plugins, and settings after confirmation.
  • Export and import local backups for your library, progress, categories, source settings, and chapter download status.

Current state

Norea is usable for testing, but it is not a polished app-store release yet.

Current limits:

  • macOS and iOS are not planned right now.
  • Linux builds are no longer produced or supported.
  • Some protected sources may ask you to open the in-app site browser once before search or downloads work.
  • Android background downloads still need more device testing.
  • There is no automatic updater yet. Use Settings -> About to check and download newer builds manually.

Download

Norea currently publishes tester builds from the 0.2 branch. Download them from the dev-0.2 GitHub prerelease. There is no stable release yet. Successful platform workflows refresh its installers, packages, APKs, update metadata, and checksums.

Workflow artifacts remain available as a fallback while the prerelease is being refreshed:

  1. Open the latest successful workflow run for your platform: Windows or Android.
  2. Open the run and scroll to Artifacts.
  3. Download the matching artifact:
Platform What to download
Windows x64 norea-windows-x64-nsis or norea-windows-x64-msi
Windows ARM64 norea-windows-arm64-nsis or norea-windows-arm64-msi
Android phone or tablet norea-arm64.apk
Android emulator or WSA norea-x86_64.apk

Workflow artifacts are kept for 30 days. If an artifact is expired, use a newer successful run or the dev-0.2 prerelease.

First run

  1. Install and open Norea.
  2. Add a reading source list from Browse -> Sources.
  3. Install one or more sources.
  4. Search a source, open a novel, and add it to your library.
  5. Open a chapter to read. Download chapters you want available later.

Add reading sources

Reading sources are installed separately from the app. The sample source list is maintained at tinywind/norea-plugins and focuses on public-domain, open-license, official-API, and user-owned self-hosted examples.

To add the sample source list:

  1. Open Browse -> Sources.

  2. Choose Set repository.

  3. Paste this URL:

    https://raw.githubusercontent.com/tinywind/norea-plugins/dist/0.2/.dist/plugins.json
    
  4. Save it.

  5. Install sources from Available source plugins.

Only install and use sources you are allowed to access in your country and under the source site's terms.

Optional content server

Norea Content Server stores complete chapter files so you can upload content from one device and download it on another. An archived copy remains available when the original source site is offline or removes a work.

The server is an optional shadow backup. Library navigation, saved work details, and locally downloaded reading must remain usable immediately, even while the server is slow or unavailable. Automatic server lookups, transfers, and refreshes run in the background and must never add blocking loaders, error banners, or other interruptions to normal use. Actions you explicitly request, such as a server download or manual sync, still report failures that prevent completion.

Start with Docker

The public Docker image for the 0.2 app series targets linux/amd64, including Linux containers on Docker Desktop. To start a compatible server with persistent storage:

docker volume create norea-content-data
docker run -d --name norea-content-server --restart unless-stopped -p 0.0.0.0:8080:8787 -v norea-content-data:/data tinywind0/norea-content-server:0.2

Open http://localhost:8080/admin/ on the host. The administration console and content API share port 8080; there is no separate console port. First startup creates the console password in the data volume. Read it privately with:

docker exec norea-content-server cat /data/admin-password.hash

Keep the data volume across container replacements: it contains the catalog, chapter files, and console password. The command publishes port 8080 on all host interfaces. Devices on your network can use http://<server-LAN-IP>:8080 when the host firewall permits access. New devices register automatically and downloads are anonymous by default, so anyone who can reach the server can register a device. Use a trusted network or configure restricted remote access as described in the server documentation.

Connect Norea

  1. Open Settings -> Data -> Content server.
  2. Save the server URL and a device name. On a phone or tablet, use the server's LAN address; localhost refers to that phone or tablet.
  3. Choose Sync now to register the device and upload complete local chapters.
  4. Choose Download to this device for content in the server catalog.

No account or password is needed in the app. Each device uses its own registration key. Ordinary content sync shares work metadata and chapter files while keeping library membership and reading state local. The separate Settings -> Data -> Device backup section saves the complete app database and settings under your device name. It lists the server's saved device backups; selecting one and confirming Restore replaces the local database and settings, then reloads the app. This includes library membership and reading state, with no separate reading sync key or history merge. See Backup for its scope.

Choose Manual only, Periodically, or When changes occur for content sync. Automatic sync runs while the app is visible, and later syncs use recorded content changes.

Complete chapters upload as multipart requests containing the original content.html or content.pdf, plus manifest.json and media.zip when present. The app sends these files byte for byte, without creating an extra ZIP, rewriting HTML or media references, or recompressing media. The server publishes a revision only after every listed file arrives with its declared size. Transfers check file names, sizes, and completion without computing or comparing chapter-file SHA-256 hashes. Downloads support only the current original-file format. Deleting a local download leaves the server copy intact unless its confirmation also selects server deletion. The server keeps one copy per chapter and records whether its ZIP contains every asset declared in the media manifest. Under Settings > Data > Content server > Upload conflicts, choose whether to prefer complete chapters, keep server data, or replace it with app data. Then use Sync now to apply the selected policy. Deletion confirmations let you also remove matching data from the other side; additional options start unchecked. Removing library membership can also delete device downloads or the whole server work. Delete work from server in Browse -> Content server or Manage server data removes server metadata, the cover, and all chapters, with an option to remove the whole device work and its reading state. Chapter download deletion keeps work information and reading progress. Explicit server deletions made in the app stay excluded from uploads after restart and local rescans.

Work metadata and covers sync independently of chapter downloads. Each work's novel.json stores its details and a chapters map of source chapter numbers to titles beside its cover. Source metadata fetches update the catalog; downloading or deleting chapter files does not change it. No source cover URL is stored. The plugin ID, source path, and work name are the only required fields. A local rescan restores the catalog and marks chapters downloaded only when their completed files are found. The same catalog is backed up to the content server. Downloaded chapters are discovered from their existing folders and files. These files are authoritative; the app keeps metadata in SQLite for browsing and search, including works with no downloaded chapters. Opening saved works does not require fetching their metadata from the source site again.

After app data is cleared, selecting an existing content folder restores its works to the library in the background. The library and storage settings show the current work, inspected folders, recovered works and chapters, and skipped folders. Each recovered work becomes available immediately; library and plugin repository queries do not wait for the scan. Recovery reads local files without rewriting them or contacting the content server or source sites.

The web console manages devices, server copies, scan jobs, and multiple plugin repository indexes. The server uses its configured data directory for content storage and scanning; the console does not select additional folders. Scanning requires valid novel.json work metadata and discovers chapters from their folders and files without contacting source sites or requiring installed plugins. Incomplete chapters are recorded but excluded from downloads; unsupported files are skipped. Original files are preserved. Works and their covers remain available even when none of their chapters can be imported. The console offers cover grids, a list view, and full metadata inspection.

See content-server integration for sync behavior and current limits, and the server's administration guide for folder import and server configuration.

Backup

Device backup on the content server

Open Settings -> Data -> Device backup after configuring a content server. Your device name is the default backup name. Save the current snapshot to that name, or select a name from the server's list and restore its saved snapshot after confirming the overwrite. Every registered, unblocked device can list and restore the server's device backups; these are not separated by private reading sync keys.

The snapshot includes the complete SQLite database, repository URLs, installed plugin JavaScript, categories, library membership, reading progress, bookmarks, history, and all work and chapter metadata. It also includes all saved app settings, including server connection and device credentials, VPN settings and the imported OpenVPN profile, interface preferences, and the storage folder setting. Restoring replaces these values with the selected device's snapshot and reloads the app. It does not merge two devices' history.

Downloaded chapter bodies, cover files, and image or media files stay in their existing storage folders and are not included or overwritten. Operating-system folder permissions, WebView cookies, and VPN username/password values held only in memory are not included. A different device may need to grant access to the restored storage folder or select an available folder again.

Only a backup with the same database schema and migration history can be restored. The app verifies the archive checksum and database integrity before replacement. Pending download and metadata publication jobs from the snapshot are cancelled or removed so they cannot modify original content files after restore. The older portable file backup remains available separately.

Physical download cache flags and byte counts are reset during a full device restore because original chapter files are not included. Existing local files remain untouched and are checked again when their chapters are opened or downloaded; reading progress and metadata stay restored.

If a preserved work is absent from the restored database, opening it from the server catalog rebuilds its local index from the existing files without replacing those files with the server response.

Portable local file backup

Use Settings -> Backup to export or import your local library data. Backups include your library, reading progress, categories, source settings, installed sources, and chapter download status. Downloaded chapter bodies and cached chapter media are not packed into the backup; they stay in the chapter storage folder, and Norea re-checks that folder after a restore so download flags match the files that are actually present. This portable format excludes device authentication keys and preserves existing content files during restore. Only the current manifest format 2 is supported. It is a different format from the complete device snapshot stored on the content server.

Version compatibility

Database schema changes increment the version and migrate existing app data, including development builds. Registered migration SQL remains immutable. Unknown versions, changed checksums, and failed migrations stop database opening without deleting existing data.

Settings, metadata, backups, and the content-server API currently support only their current formats. Use current app and server builds together.

Maintainer details live in docs/release-compatibility.md.

For developers

Developer setup, local plugin testing, release artifact details, and contribution rules live in docs/development.md.

Optional content-server setup and current integration limits are documented in docs/content-sync.md.

License

MIT. Upstream assets and translation seeds remain MIT-compatible and are credited in the app where relevant.

About

Norea is a local-first light novel, webtoon, and manga reader for Windows and Android.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages