Skip to content

ubuntu20.04自建calibre-web服务

最近自建了一堆服务,在calibre-web碰到了一些问题,在此记录下。

最终版本到docker-compose.yml配置如下,该服务的数据目录books使用了rclone挂载google drive(单本书20mb来算的话,15gb的免费容量,能装700+本,能支撑一阵子了)。

version: "3.7"
  
services:
  calibre-web:
    image: technosoft2000/calibre-web
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - DOCKER_MODS=linuxserver/calibre-web:calibre
    volumes:
      - ./config:/config
      - ./books:/books
      - ./app:/calibre-web/app
#    ports:
#      - 8083:8083
    restart: unless-stopped
    networks:
      - localnet

networks:
    localnet:
        external: true

问题

1, db location is not valid

Anyone successfully install Calibre-web? The plugin had issues. | TrueNAS  Community

在我的配置中对应的Library Configuration的值为/books,报这个错误是因为在该目录下需要sqlite 的数据文件 metadata.db

2,DB is not Writeable

从本地拷贝这个文件后此处配置会通过,但是会提示DB is not Writeable 。这是因为calibre-web要求宿主机器映射的books目录具有写权限。

3,文件上传的的时候封面拷贝报权限问题

原因是封面图片文件从\tmp目录拷贝到\books 目录,tmp目录的用户和组为calibre:calibre ,而\books的用户和组为1000:1000 ,books使用了宿主机上的calibre用户的uidgid。而当前使用的镜像在容器启动的时候,在容器内另外创建了calibre用户,二者权限并不一致,需要通过PUIDPGID进行映射

最终解决方案

先停掉容器,将原先的app目录、config目录删除,books目录内容清空。

原先有挂载google drive的话,卸载掉fusermount -qzu /root/calibre-web/books

rclone 挂载google drive的时候,加上对应的用户和组

/usr/bin/rclone mount techbook: /root/calibre-web/books \
--umask 0000 \
--uid 1000 \
--gid 1000 \
 --default-permissions \
 --allow-non-empty \
 --allow-other \
--vfs-cache-mode full \
 --buffer-size 32M \
 --dir-cache-time 12h \
 --vfs-read-chunk-size 64M \
 --vfs-read-chunk-size-limit 256M &

此时books目录的权限是这样的

~/calibre-web# ls -trl
total 12
drwxrwxrwx 1 calibre calibre    0 May 28 13:39 books
-rw-r--r-- 1 calibre calibre  494 May 28 13:39 docker-compose.yml
drwxr-xr-x 2 root    root    4096 May 28 13:45 config
drwxr-xr-x 7 calibre calibre 4096 May 28 14:30 app

doicker-compose的配置中添加PUID和GUID配置,见上面的配置。

重新启动容器服务docker-compose up -d,books目录下会自动生成metadata.db 此时books目录下的文件结构如下

~/calibre-web/books# ls -trl
total 481
-rw-rw-rw- 1 calibre calibre  12900 May 28 13:45  metadata_db_prefs_backup.json
-rw-rw-rw- 1 calibre calibre  32768 May 28 13:47  gdrive.db
-rw-rw-rw- 1 calibre calibre 348160 May 28 14:51  metadata.db
-rw-rw-rw- 1 calibre calibre  98304 May 28 16:26  app.db

解决好权限问题后,calibre-web服务终于可以正常使用了

Published in自建服务问题处理

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *