飞牛NAS虚拟机中安装的FreeBSD14.2。
使用自己的DDNS脚本更新动态域名的AAAA记录。
已经有calibreweb包可用:
xxxxxxxxxx
# pkg install py311-calibreweb
由于使用pkg安装后出现一些问题,比如,无法上传azw3文件,故使用ports tree安装:
x
$ git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports
$ cd /usr/ports/www/py-calibreweb
$ sudo make install clean
在py-calibreweb配置页中选上 calibre。
Calibre-Web需要一个Calibre数据库(metadata.db),而以上安装方式不会生成此数据库,所以在首次登录时会要求提供此数据库存放的路径。
官方github项目提供了一个空数据库,下载后放置到书库的根目录即可。
https://github.com/janeczku/calibre-web/raw/master/library/metadata.db
安装完成后编辑 /etc/rc.conf 文件,加入以下行:
xxxxxxxxxx
calibreweb_enable="YES"
calibreweb_ip_addr="::"
然后运行以下命令启动calibreweb:
xxxxxxxxxx
$ sudo service calibreweb start
浏览器中输入Calibre-Web服务器地址:
http://[hostname]:8083
默认管理的账号为admin,密码为admin123。
登入后会看到Database Configuration提示,要求指定Calibre数据库路径,实际上就是找metadata.db所在的位置。
此步骤正确设置完成之前,其他任何操作均无法进行。
默认情况下系统不允许上传文件,需要在“管理权限”→“基本配置”→“功能配置”中开启上传功能。
默认允许上传的文件格式如下:
odt,azw,m4b,wav,ogg,cbz,cbt,rtf,lit,epub,djvu,doc,docx,flac,txt,mp3,pdf,fb2,kepub,mobi,azw3,html,prc,opus,mp4,cbr,m4a
做完以上设置之后,admin账号可以上传书籍。
若新增加用户,需要勾选“允许上传书籍”才能使其具有上传书籍的权限。
默认允许上传小于200MB的书籍,可以通过修改以下文件来更改限制:
xxxxxxxxxx
/usr/local/lib/python3.9/site-packages/calibreweb/cps/server.py
大约在245行:
xxxxxxxxxx
#Max Buffersize set to 200MB
http_server.....
max_buffer_size=2097000000,
将max_buffer_size的值修改为希望的值。
然后重启calibreweb服务。
但过大的书籍可能会影响后续阅读,尤其是客户端到服务器的网速不佳时,可能读取失败。
无法上传azw3文件,即使前面在允许的格式中添加了azw3,依然会遇到提示:
xxxxxxxxxx
File type isn't allowed to be uploaded to this server
日志中有记录:
xxxxxxxxxx
[2025-09-11 15:00:05,057] ERROR {cps.file_helper:59} Unkown mimetype for Extension: odt
[2025-09-11 15:00:05,057] ERROR {cps.file_helper:59} Unkown mimetype for Extension: rtf 【此项在使用portstree安装后消失】
[2025-09-11 15:00:05,057] ERROR {cps.file_helper:59} Unkown mimetype for Extension: flac
[2025-09-11 15:00:05,057] ERROR {cps.file_helper:59} Unkown mimetype for Extension: docx
[2025-09-11 15:00:05,057] ERROR {cps.file_helper:73} Mimetype 'application/x-mobipocket-ebook' not found in allowed types
看起来像是未能识别odt、rtf、flac、docx。
在【管理权限】的计划任务中,点击【刷新封面缩略图缓存】,试图重新生成缩略图,但在任务列表中发现任务失败,提示:
x
[Errno 13] Permission denied: '/usr/local/lib/python3.11/site-packages/calibreweb/cps/cache'
该目录并不存在,手动创建,并使用chown命令将其分配给calibreweb用户,再次刷新封面缩略图缓存,可正常运行,并能生成正确的缩略图。