• 阿里云服务器(Ubuntu)配置calibre-web图书管理服务



    tags: Leanote Server Tips

    写在前面

    这次来配置一个基于calibre电子书管理软件web镜像的电子图书馆, 因为自己本地的电子书太多了, 各个文件夹都有, 显得比较乱糟糟, 有了calibre-web, 这个问题就可以解决了, 主要参考了1.

    预备知识

    配置Linux server, 现在已经是轻车熟路了, 但是这次配置的calibre需要一个新的内容, docker. 之前虽然接触过一些, 但是还是不够熟悉, 下面的一步步配置也算是对docker基本命令做一个总结了.

    先pull一下镜像, 稍后会用到.

    docker pull linuxserver/calibre-web
    
    • 1

    服务器配置

    端口配置

    管理界面开启8083/TCP.

    参考之前我设置的快捷命令, 直接一步到位:

    addtcp 8083
    reufw
    
    • 1
    • 2

    映射目录

    # 存放书
    mkdir -p /data/calibre/books
    # 配置
    mkdir -p /data/calibre/config
    
    • 1
    • 2
    • 3
    • 4

    上传calibre数据库文件

    将本地主机上的calibre数据库文件/Users/xxx/Calibre\ 书库/metadata.db, 上传到Ubuntu服务器, 这里用到了scp命令:

    scp ~/Calibre\ 书库/metadata.db root@<公网IP>:/data/caliber/books/
    
    • 1

    然后在Ubuntu的/data/caliber/books目录下就有了一个数据库文件

    数据库可以为空, 即不记录任何书, 后期直接上传即可.

    改一下权限:(不然传不上去)

    chmod 777 /data/calibre/*
    
    • 1

    这样的话之后你上传的所有的书都会存放在这个目录的books/子目录下.

    docker配置

    这里还是比较简单的, 先创建镜像2:

    docker run -d \
      --name=calibre-web \
      -e PUID=1000 \
      -e PGID=1000 \
      -e TZ=Asia/Shanghai \
      -p 8083:8083 \
      -v /data/calibre/books:/books \
      -v /data/calibre/config:/config \
      --restart unless-stopped \
      linuxserver/calibre-web
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    其中:

    1. 第一行是用docker的run命令(通过-d选项开启后台守护态运行)运行容器.
    2. 指定别名.
    3. 为容器分配的用户ID
    4. 为容器分配的组ID
    5. 时区设置
    6. 端口转发规则: 外部(主机):内部(容器), 之后访问http://公网IP:8083时候就可以访问到镜像.
    7. 配置路径映射: books存放数据库和书, 外部(服务器主机):内部(容器)格式.
    8. 配置路径映射: config存放配置信息.
    9. 重启规则.
    10. 所用镜像的名称.

    不过这样不好改, 还是用docker-compose的yaml配置文件好一些.

    查看一下状态:

    $ docker ps
    CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                       NAMES
    c9bcaf90acbb   linuxserver/calibre-web     "/init"                  16 seconds ago   Up 15 seconds   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp   calibre-web
    
    • 1
    • 2
    • 3

    这些搞定了之后, 不要着急打开浏览器, 先输入:

    docker logs calibre-web
    
    • 1

    查看一下配置的情况, 如果出现了下面的字样才算是成功配置了:(主要是最后一行)

    [custom-init] No custom services found, skipping...
    [migrations] started
    [migrations] no migrations found
    
    -------------------------------------
              _         ()
             | |  ___   _    __
             | | / __| | |  /  \
             | | \__ \ | | | () |
             |_| |___/ |_|  \__/
    
    
    Brought to you by linuxserver.io
    -------------------------------------
    
    To support LSIO projects visit:
    https://www.linuxserver.io/donate/
    -------------------------------------
    GID/UID
    -------------------------------------
    
    User uid:    1000
    User gid:    1000
    -------------------------------------
    
    [custom-init] No custom files found, skipping...
    [ls.io-init] done.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    web端配置

    输入<公网IP>:8083进入webUI, 其中

    用户名:admin
    密 码:admin123
    
    • 1
    • 2

    改一下密码和UI语言(中文)(admin’s profile), 以及上传设置(管理权限->编辑基本配置->基本配置->启动上传->保存).

    一些可能的问题与解决

    权限问题

    chmod 777 /data/calibre/books/*
    chmod 777 /data/calibre/config/*
    
    • 1
    • 2

    然后

    docker restart calibre-web
    
    • 1

    忘记密码怎么办

    邮箱并不会给你发密码, 考虑issue的办法:3.

    docker exec -it calibre-web bash
    cd /app/calibre-web
    python3 cps.py -s admin:admin123
    # Password for user 'admin' changed
    
    • 1
    • 2
    • 3
    • 4

    小坑

    文章1里面说的内容我配置过, 但是成功率很低…

    至于原因, 一开始我以为是IPv4端口转发没开, 但是事实是阿里云是默认开启的, 并不需要去自己设置. 而且docker ps也显示我启动了这个容器… 后来发现光看docker ps并不科学, 因为真正的创建情况不会显示在docker ps里面, 这只是一个容器的状态, 至于端口, 容器初始化等情况, 并没有任何提示, 于是才需要用docker logs calibre-web看具体的情况.

    后来我发现, 应该是镜像里面用到了GitHub 的一些仓库, 然而这些仓库访问特别慢, 需要等很久才能创建成功, 不建议使用, 而且其中提到的technosoft2000/calibre-web - Docker Image | Docker Hub镜像已经一年不更新了, 这里还是推荐用最新的Linuxserver下的镜像2, 虽然少了电子书转换等功能, 但是不影响基本使用, 可以在之后自行配置服务.

    ref


    1. 【玩转腾讯云】使用轻量应用服务器和calibre-web搭建个人在线图书馆 - 腾讯云开发者社区-腾讯云 (tencent.com); ↩︎ ↩︎

    2. linuxserver/calibre-web - Docker Image | Docker Hub; ↩︎ ↩︎

    3. 如何重置密码 ·问题 #750 ·janeczku/calibre-web (github.com); ↩︎

  • 相关阅读:
    registry镜像仓库通过HTTP API删除镜像
    AI实战 | 手把手带你打造校园生活助手
    【Linux】nohub指令--终端退出后命令仍旧执行
    《Redis实战》笔记
    harvard dataverse数据公开上传网站-数据库repository
    valgrind 工具使用
    Python学习:encode()和decode()方法:字符串编码转换
    企业在数字化管理中有哪些难点?如何有效解决?
    salesforce零基础学习(一百三十九)Admin篇之Begins/Contains/Starts With 是否区分大小写
    JMeter三种常用的逻辑控制器
  • 原文地址:https://blog.csdn.net/qq_41437512/article/details/127894849