Web application for archival and reading of manga/doujinshi. Lightweight and Docker-ready for NAS/servers. https://lrr.tvc-16.science
  • Perl 54.8%
  • HTML 23.4%
  • JavaScript 15.8%
  • CSS 4.5%
  • Shell 0.7%
  • Other 0.8%
Find a file
Difegue 4bec40618a Implement Lua-based sorting for Tanks in Search w/ tests
If the grouptanks parameter is true, then search results may include a
mix of archives and tankoubons. Tankoubons have different metadata
handling than archives, and so the existing sorting code didn't handle
it correctly.

There's a question here about how sorting by a prefix should be
handled. In some places, tankoubons are considered to have a tagset
equal to the union of all their constituent archives. This is sensible
for bare tags, but problematic for metadata tags with prefixes. In
particular, if a tankoubon has multiple tags prefixed "artist" etc,
then a search sorting on the artist prefix is ambiguous. (This problem
also applies to archives that simply have more than one artist: tag in
their native tagset.)

Currently, the handling of this case for archives is that the system
picks an arbitrary one of the matching tags to use for the sort
key. (Specifically, it's the first one in the serialized tag string.)
Tag string serialization has no defined order, so which tag is
selected will depend on the source of the tag and the order in which
operations are executed.

It's not clear how this problem is correctly handled, in the general
case. For this particular bug fix, I just punt: when sorting by a tag
prefix, tankoubons use only the tank's native set of tags, ignoring
any tags on the constituent archives.

Co-authored-by: alethiophile <mail@alethiophile.dev>
2026-05-09 18:07:24 +00:00
.devcontainer Fix devcontainer config 2026-05-07 18:23:30 +00:00
.github Fix upload encodes on windows 2026-04-21 16:05:32 +01:00
lib Implement Lua-based sorting for Tanks in Search w/ tests 2026-05-09 18:07:24 +00:00
locales/template Allow adding Tankoubons to Categories in UI 2026-05-09 14:09:59 +00:00
log Fix up a bunch of bugs 2019-09-03 20:43:50 +02:00
public Allow adding Tankoubons to Categories in UI 2026-05-09 14:09:59 +00:00
script Working native windows install 2025-05-24 19:53:23 -06:00
templates Allow adding Tankoubons to Categories in UI 2026-05-09 14:09:59 +00:00
tests Implement Lua-based sorting for Tanks in Search w/ tests 2026-05-09 18:07:24 +00:00
tools Update Redis mock for full coverage + semantic equivalence and add additional tests for Categories and Tanks 2026-05-09 15:28:50 +00:00
.dockerignore Remove all the vagrant stuff, it's long outdated at this point 2022-04-25 22:47:31 +02:00
.gitattributes (#140) Clear out old warnings 🧹 2019-06-09 00:42:20 +02:00
.gitignore Unify screenshots under gitbook 2025-12-28 20:25:31 +01:00
.gitmodules (#144) (#196) (#233) Full revamp of the Windows builds using a WiX Installer 2019-11-28 19:53:57 +01:00
.perlcriticrc Tell critic to allow sub signatures it's 2023 2023-02-28 23:49:28 +01:00
.perltidyrc (#287) PerlTidy pass + commit in .perltidyrc 2020-04-27 15:53:52 +02:00
CONTRIBUTING.md (#1372) Add quick CONTRIBUTING.md that links to the actual documentation 2025-10-19 19:46:57 +02:00
COPYING Restored old README and switched license to MIT 2018-01-24 22:08:35 +01:00
eslint.config.mjs Update to eslint v10 2026-03-29 01:08:01 +01:00
lrr.conf Metrics Exporter (#1301) 2026-03-22 00:34:53 +01:00
package-lock.json Bump swiper from 8.4.5 to 12.1.2 (#1497) 2026-03-29 01:15:05 +01:00
package.json Update package.json 2026-05-03 17:06:18 +02:00
README.md Unify screenshots under gitbook 2025-12-28 20:25:31 +01:00


LANraragi

Open source server for archival of comics/manga, running on Mojolicious + Redis.

💬 Talk with other fellow LANraragi Users on Discord or GitHub Discussions

Translation status

LANraragi uses Weblate for translation hosting.

Screenshots

Main Page, Thumbnail View Main Page, List View
archive_thumb archive_list
Archive Reader Reader with overlay
reader reader_overlay
Configuration Plugin Configuration
cfg cfg_plugin

Features

  • Stores your comics in archive format. (zip/rar/targz/lzma/7z/xz/cbz/cbr/pdf supported, barebones support for epub)

  • Read archives directly from your web browser: the server reads from within compressed files using temporary folders.

  • Read your archives in dedicated reader software using the built-in OPDS Catalog (now with PSE support!)

  • Use the Client API to interact with LANraragi from other programs (Available for many platforms!)

  • Two different user interfaces : compact archive list with thumbnails-on-hover, or thumbnail view.

  • Localized interface with English, Chinese, and more to come.

  • Choose from 5 preinstalled responsive library styles, or add your own with CSS.

  • Full Tag support with Namespaces: Add your own or import them from other sources using Plugins.

  • Store archives in either arbitrary or dynamic Categories to sort your Library easily

  • Import metadata using Plugins automatically when archives are added to LANraragi.

  • Download archives from the Internet directly to the server, while using the aforementioned automatic metadata import

  • Scan for duplicates within your saved archives

  • Backup your database as JSON to carry your tags over to another LANraragi instance.