最近发现E站收藏夹里的漫画消失的有亿点点多,看了一下很多都是被版权投诉删掉了,不禁联想到当初某P开头网站把我的收藏夹一夜清零的惨案,看来一切网络收藏夹终究还是不靠谱,只有把原档案下载下来自己存放才是终级解决方案,经过搜索发现LANraragi这个工具完美符合我的需求,它支持多种文件格式,可以自动生成封面,通过默认和第三方插件,可以实现从多个网站自动获取Tag、标题、作者等元信息,甚至支持通过程序本身直接从相应网站下载漫画并自动入库归档。入库的漫画不仅可以通过Web方便的从全平台进行访问,还可以通过各个平台的客户端获取更好的体验。

2023.3.15更新:新增nHentai CF Bypass插件配置教程

本文全程在Debian 11环境下进行操作。提供的命令均以root用户执行。

程序介绍

项目地址:https://github.com/Difegue/LANraragi

汉化版项目地址:https://github.com/uparrows/LANraragi_cn

官方文档:https://sugoi.gitbook.io/lanraragi/v/dev

Demo:https://lrr.tvc-16.science/

目前程序具体支持阅读的漫画格式如下:zip/cbz、rar/cbr (最高仅支持到RAR4)、tar.gz/cbt、lzma、7z/cb7、xz、pdf、epub (如果从Web端阅读,只能看到书中的图片内容)

通过插件,支持包括但不限于以下几个来源的元信息导入:

  • Currently supported out of the box are:
  • E-Hentai/Exhentai
  • nHentai
  • Chaika.moe
  • .json files embedded into your Archives from the eze userscript
  • .json files embedded into your Archives from HDoujin Downloader ...and more!

截图

01_Mainpage

02_PluginPage

Docker安装

官方文档中给了多种安装方式,这里只采用最简单的Docker方式安装,其他方式请参照官方文档

安装docker

curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

创建必要文件夹

mkdir -p /mnt/docker/lanraragi/content
mkdir -p /mnt/docker/lanraragi/database

上面两条命令分别创建了程序的内容库数据库文件夹,内容库用来存放漫画文件和缩略图,数据库用来存放元信息等数据文件。这两个路径可以自行更改,如果更改这两处路径,在下面运行镜像的命令中对应位置也要更改。

运行镜像

推荐直接运行B站UP主@浅笑一夏汉化版本,虽然目前有部分区域文字显示乱码,但是不影响功能使用。全中文的后台管理界面看起来还是要省力很多,汉化作者也在原版的基础上添加了几个实用插件(比如直接读取从EhViewer下载的漫画压缩包中的.ehviewer文件获取元信息),运行以下命令:

docker run --name=lanraragi --restart=always -p 3001:3000 \
--mount type=bind,source=/mnt/docker/lanraragi/content,target=/root/lanraragi/content \
--mount type=bind,source=/mnt/docker/lanraragi/database,target=/root/lanraragi/database \
dezhao/lanraragi_cn

当然如果你英语阅读无障碍,并且追求第一时间体验原作者的最新版本,你也可以运行原作者提供的镜像(下面这段代码和上面这段代码2选1,不要重复运行):

docker run -e LRR_UID=0 -e LRR_GID=0 --name=lanraragi --restart=always -p 3001:3000 \
--mount type=bind,source=/mnt/docker/lanraragi/content,target=/home/koyomi/lanraragi/content \
--mount type=bind,source=/mnt/docker/lanraragi/database,target=/home/koyomi/lanraragi/database \
difegue/lanraragi

其中/mnt/docker/lanraragi/content/mnt/docker/lanraragi/database分别是上面创建必要文件夹部分创建的两个文件夹路径,请根据自身需求做出更改

运行成功后,浏览器访问http://ip:3001就可以了看到如下画面了

03_MainpageCN

点击上方的管理员登录(Admin Login),输入默认密码kamimamita即可登录,登录后可以进设置(Settings)修改默认密码来保证安全。

上传漫画

程序支持这几种途径上传漫画:

网页直接上传

登录后,点击网页上的上传档案(Add Archives),进入的网页里有两种上传方法:

  • 直接从本地上传
  • 输入Chaika.moe/e-hentai画廊链接自动下载(目前仅支持这从两个网站自动下载文档,且从e-hentai下载需要事先在设置-插件设置-登陆插件-E-Hentai插件中设置好cookie,并且请注意:从e-hentai自动下载文档会耗费账号内的GP余额

网页会显示上传/下载进度条,上传完成后可以直接点击右侧/下册提示进入元数据编辑页面,也可以以后再编辑。

04_web_upload

复制文件入库

可以把下载好的文件通过ftp等工具直接上传到上面步骤中创建的内容库文件夹内,程序会自动识别入库。

编辑元数据

右击任意漫画封面,选择编辑元数据(Edit Metadata)即可进入元数据编辑页面

07_EditMetainfo

08_EditMetadata2

理论上讲,程序会取文件名作为标题,如果标题正确的话,一般选择对应的插件后点击Go!按钮,标签(Tag)信息就会被自动搜索填入,当然,你也可以手动粘贴画廊链接(插件支持范围内)到最下方输入框再点击Go!按钮,插件便会忽略标题,从你输入的画廊链接获取Tag信息,至于更细致的设置,比如从默认表站还是里站获取、是否保存日/英文标题、漫画入库时插件是否自动运行等等,请进入设置(Settings)-插件配置(Plugin Configuration)-元数据插件(Metadata Plugins)自行详细设置。

部分插件设置(可选)

E-Hentai登录插件

如果你没有以下需求,可以不设置这个插件:

  • 需要利用LANraragi程序本身自带的下载功能,直接从E-Hentai/ExHentai耗费GP下载漫画文件。
  • 需要访问里站(ExHentai)内容获取仅里站可见的漫画的Tag信息。(表站E-Hentai的Tag信息默认就能获取,无需额外配置)

如果你拥有以上需求之一,请参照下面步骤设置插件:

打开插件设置页面备用

在登录状态下的首页,通过设置(Settings)-插件设置(Plugin Configuration)-登陆插件(Login Plugins)-E-Hentai插件-插件配置(Plugin Settings)进入插件设置页面,挂着备用。

05_EHentaiPluginSettings

打开E-Hentai/ExHentai获取

此处分以下几种情况(以下称E-Hentai为表站,ExHentai为里站),请先确定自身你属于哪种情况,再按下文步骤获取相应cookie:

  1. 你的账号既没有访问里站的权限,也没有在表站访问里站内容的权限(捐赠用户特权)。那就需要访问表站,获取ipb_member_id cookieipb_pass_hash cookie。此种状态下,你只能使用”在程序内利用自带的下载功能直接从E-Hentai耗费GP下载漫画文件“这一功能。
  2. 你的账号没有访问里站的权限,但是拥有在表站访问里站内容的权限(捐赠用户特权)。那就需要访问表站,获取ipb_member_id cookieipb_pass_hash cookiestar cookie。此种状态下,你可以使用程序内涉及到表站和里站的全部功能。
  3. 你的账号拥有访问里站的权限,且服务器IP地址是欧美地区IP。那就需要访问里站,获取ipb_member_id cookieipb_pass_hash cookie。此种状态下,你可以使用程序内涉及到表站和里站的全部功能。
  4. 你的账号拥有访问里站的权限,但是服务器IP地址是非欧美地区IP。那就需要访问里站,获取ipb_member_id cookieipb_pass_hash cookieigneous cookie。此种状态下,你可以使用程序内涉及到表站和里站的全部功能。

不论你是哪一种情况,获取的方法都是类似的,根据需要自行打开表/里站首页,按F12打开开发者工具,找到应用程序(Application)选项卡(找不到就到”>>“里面找),火狐的话应该是在存储选项卡。找到里面的Cookie处(如图),点击相应链接,右侧就会出现相应内容,我的情况属于情况4,需要获取ipb_member_id cookieipb_pass_hash cookieigneous cookie,对应名称后的内的内容,就是我们需要获取的内容,分别复制出来填入之前打开备用的插件设置页面内,然后点击网页底端的保存插件配置(Save Plugin Configuration)即可。

06_GetCookies

nhentai登录插件

nhentai网站加了CF的人机验证盾,所以必须配置在nhentai登陆插件中配置好浏览器uacsrftokencf_clearance这三个变量才可以让程序顺利从nhentai获取tag。

但是需要注意的是,只有当上面那三个cookie和获取cookie时的IP地址匹配时,才能成功穿过CF盾的验证,使插件生效。所以,获取nhentai的csrftokencf_clearance这两个变量时,必须和运行LANraragi的VPS的拥有相同的IP地址(如果你是本地环境部署就不必在意这个,直接模仿上文方法获取就好),为了达成这个条件,你有两种选择:

  1. 在运行LANraragi的VPS上进行获取
  2. 设法在运行LANraragi的VPS上建立网络隧道,本地连接上隧道获取和VPS相同的网络环境后,在本地进行获取(本方法本文不再赘述)

在这里我选择第一种情况。

csrftokencf_clearance这两个cookie倒是也有两个程序(cf-clearanceCF-Clearance-Scraper)能够直接获取,不过我用他们Readme里的范例运行了一下都没成功。有能力的可以自己研究一下。

所以我这里提供一个比较笨的办法:Dokcer运行docker-firefox镜像,这个镜像允许你在本地的浏览器上远程访问运行在VPS上的firefox浏览器,然后你就可以按照上文中Ehentai的cookie获取方式获取nhentai的csrftokencf_clearance这两个cookie。

本方法运行的docker-firefox镜像占用资源较多,低配置的VPS可能会无法运行/运行后卡的要死,低配置小鸡请尝试另外的方法

打开插件设置页面备用

在登录状态下的首页,通过设置(Settings)-插件设置(Plugin Configuration)-登陆插件(Login Plugins)-nHentai CF Bypass-插件配置(Plugin Settings)进入插件设置页面,挂着备用。

09_nHentaiPluginSettings

获取cookie

运行docker-firefox镜像

docker run -d \
    --name=firefox \
    -p 5800:5800 \
    -v /docker/appdata/firefox:/config:rw \
    jlesage/firefox

运行成功后,浏览器访问http://ip:5800即可看到Firefox浏览器的画面,像远程桌面一样操作就可以。

在远程的Firefox中打开https://useragentstring.com/,获取到自己的ua,填入Browser UserAgent string中。

在远程的Firefox中打开nhentai,手动过一下CF的人机验证(一般点个对勾就过了)

10_nHentaiCF

然后按F12打开开发者工具,在存储选项卡。找到里面的Cookie处,点击相应链接,按照和上文中Ehentai部分相似的方法获取csrftokencf_clearance这两个cookie,分别复制出来填入之前打开备用的插件设置页面内,然后点击网页底端的保存插件配置(Save Plugin Configuration)即可。

Firefox镜像用完最好及时stop掉,不然挺占资源的,即便你不在乎资源占用,最好也加个访问密码,避免被人扫到成为万人骑

程序升级

Docker方式部署的程序升级也很方便,因为漫画文件、数据库内容文件都在容器外,不会丢失,所以直接拉取最新镜像删除重建容器即可升级到最新版本。

升级汉化版本:

docker pull dezhao/lanraragi_cn
docker stop lanraragi
docker rm lanraragi
docker run --name=lanraragi --restart=always -p 3001:3000 \
           --mount type=bind,source=/mnt/docker/lanraragi/content,target=/root/lanraragi/content \
           --mount type=bind,source=/mnt/docker/lanraragi/database,target=/root/lanraragi/database \
           dezhao/lanraragi_cn

升级英文原版:

docker pull difegue/lanraragi
docker stop lanraragi
docker rm lanraragi
docker run -e LRR_UID=0 -e LRR_GID=0 --name=lanraragi --restart=always -p 3001:3000 \
           --mount type=bind,source=/mnt/docker/lanraragi/content,target=/home/koyomi/lanraragi/content \
           --mount type=bind,source=/mnt/docker/lanraragi/database,target=/home/koyomi/lanraragi/database \
           difegue/lanraragi

其中的端口号和路径依旧是依照自身实际更改。

补充说明

写了这么多,从部署到使用已经讲的比较清楚了,不过程序功能很多,难免有没有覆盖到的地方,诸多插件的配置方面不再一一赘述,大家对着汉化版或者浏览器翻译基本上都能看懂怎么用。

汉化版作者的视频介绍(以群晖为例)

汉化版作者在B站专门有一个视频介绍,可以作为本文的补充,同时用群晖不习惯敲命令的朋友们也可以参照视频部署

B站视频:使用Docker安装LANraragi,打造你的漫画仓库

最后修改:2023 年 03 月 15 日
如果觉得我的文章对你有用,请随意赞赏