群晖NAS教程(十一)、利用Docker搭建个人图书馆(calibre-web)

本文详细介绍了如何在群晖NAS上使用Docker部署Calibre-Web,创建个人图书馆。通过配置启动参数、设置豆瓣挂刷器和端口转发,实现外网访问,打造便捷的图书管理和阅读体验。
摘要由CSDN通过智能技术生成

为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客

群晖NAS教程(十一)、利用Docker搭建个人图书馆(calibre-web)

个人图书馆(calibre-web)是超级棒的一个个人图书馆软件,可以像群晖的video station那样使用挂刷器来管理和观看图书,特别棒。

一、下载calibre-web镜像

在群晖docker套件中搜索calibre,选择第二个下载,之所以选这个,是因为它拥有图书格式转换的功能。
在这里插入图片描述

然后慢慢等待镜像下载好。

二、配置calibre启动参数

在群晖上创建文件夹config和books,分别挂载到docker镜像的磁盘/calibre-web/config和/books,不清楚的可以看镜像介绍,很easy。这里在群晖创建的两个文件夹,权限一定要给足,让任何人都可以访问,如果在群晖上操作不方便,可以考虑ssh连接群晖使用chmod -R 777来操作。
在这里插入图片描述

映射端口:
在这里插入图片描述

在启动环境变量增加两个PUID和PGID,这个有点难说明白,就默认按照截图写吧,表示登录admin用户的权限。
在这里插入图片描述

把初始化的metadata.db文件拷贝到上面步骤创建的config文件夹下,我的是e-book/library/config。

如果不知道metadata.db怎么获得,可以在win11上安装calibre,安装过程中会提示选择书库的目录,就在这个下面。

在这里插入图片描述

在这里插入图片描述

安装好启动即可,默认用户名密码是:admin/admin123。

数据库配置,如果你是安装我的步骤选的,把metadata.db复制到了config目录下,那么这里填写/calibre-web/config就行。

在这里插入图片描述

在这里插入图片描述

下面我们简单配置一下calibre,选择右上角的设置按钮,然后选功能配置,把启用上传打上勾。

在这里插入图片描述
在这里插入图片描述

三、配置豆瓣挂刷器

在群晖docker套件中,打开calibre的后台命令窗口,找到scholar.py文件,我们在同目录下增量豆瓣的py文件。
在这里插入图片描述

执行命令如下:

#回到上一级目录
cd ../
# 寻找scholar.py文件
find -name scholar.py
# 进入到scholar.py文件所在路径
cd ./app/cps/metadata_provider/
# 新增一个Newdouban.py文件
vi Newdouban.py

Newdouban.py内容如下,文件是从calibre原始镜像仓库拷贝过来的:

import re
import time

import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
from urllib.parse import urlparse, unquote
from lxml import etree
from functools import lru_cache

from cps.services.Metadata import Metadata

DOUBAN_SEARCH_JSON_URL = "https://www.douban.com/j/search"
DOUBAN_BOOK_CAT = "1001"
DOUBAN_BOOK_CACHE_SIZE = 500  # 最大缓存数量
DOUBAN_CONCURRENCY_SIZE = 5  # 并发查询数
DEFAULT_HEADERS = {
   
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3573.0 Safari/537.36'
}
PROVIDER_NAME = "New Douban Books"
PROVIDER_ID = "new_douban"


class NewDouban(Metadata):
    __name__ = PROVIDER_NAME
    __id__ = PROVIDER_ID

    def __init__(self):
        self.searcher = DoubanBookSearcher()
        super().__init__()

    def search(self, query, generic_cover=""):
        if self.active:
            return self.searcher.search_books(query)


class DoubanBookSearcher:

    def __init__(self):
        self.book_loader = DoubanBookLoader()
        self.thread_pool = ThreadPoolExecutor(max_workers=10, thread_name_prefix='douban_async')

    def calc_url(self, href):
        query = urlparse(href).query
        params = {
   item.split('=')[0]: item.split('=')[1] for item in query.split('&')}
        url = unquote(params['url
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的凯尔森同学

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值