关于Docker和Calibre的一些记录

date
Dec 19, 2021
💡
在NAS的Docker中,自己做了一个数字图书馆,差不多有大半年了。但是其上的管理员密码,一直用的是常用简单的。于是,在对简单密码越来越不放心的今天,发生了一下一系列事情。

重置了密码

觉得密码简单,自己是要改复杂一点。于是登录管理员账户,改密码。可Calibre-web中,并没有修改密码的选项让你点击。
后来我才知道,进去默认界面的密码好像就是让你设置新密码的。即便不是,在“管理用户”那里,直接输入想要的新密码,绝对就已经是修改密码了!

无法登录ADMIN

可当时不知道,在寻找“修改密码”的选项未果后,便点击了“重置用户密码”,满心以为密码会恢复到admin123这个默认值。可事实是,退出重新登录时,怎么都输都不对。
在登录界面,有个“忘记密码”,可我并没有配置发送邮件的SMTP,所以这个点下去一点反应都没有。(我到现在还是不知道去那里配置,难道就是发送书籍到Kindle的那个设置?)
这下麻烦了,管理员不能登录,其实不影响我上传和下载书籍,因为一直是用的另外一个用户名做这些事情。

需要修改APP.DB

不能登录管理总不是个事情,于是问作者、上网搜该怎么办。
作者直接说要么就删了app.db,我说这样书会没有吗?他认为还在的,当然建议我先做备份。
上网找了半天,只找到一个不同于删除app.db,但是看着很靠谱的方案,那就是想办法修改app.db。就是这个:

寻找并修改APP.DB

既然可以修改,那当然是先试着修改而不是删除。
于是,在NAS中的共享文件夹中,找到了Calibre目录,其中的确有app.db,下载并用网页提供的工具修改,再上传。重新登录,无效……
顿时头大,莫非网上的那位大大提供的字符串,是根据机器的其他环境数据计算出的?只能在他自己的设备上用?
于是,试着删除,然后奇怪的事情发生了。书库内容一点变化都没有,包括我的用户名和密码……这时候我意识到自己应该是找错了文件了。
我猜想真正需要改的文件,肯定在容器中。可是,我怎么都找不到方法,把文件从容器中取出,放到我的NAS,或者到我的PC上。
BASH命令界面中,没有可以这么操作的命令。我试着在其中找到了app.db这个文件,可我只能改名和删除,等我做了备份删除后,奇怪的事情发生了:用户是重置了,可是原本1000多本书,居然还有400多本。
SSH登录到NAS中,我连真正的DOCKER文件夹都找了很久,更别说找不到DOCKER中相应容器,以及容器中我需要的文件了。
这时候我已经走进了死胡同。

DOCKER的冰山一角

在查找有关Docker及其相关内容的时候,有这样一个询问的帖子,让我想到了些什么:
文章内容是请教怎么进入Docker的,而我也是通过她的答案,通过SSH找到了真正的Docker在哪里。可事实上就如前面所说,我依然找不到我想要的文件。
等我回头细想网页上这个提问,以及下面的回答的时候。觉得这个提问和回答隐含的意思是,在群晖上做映射才是最方便的。

还有一件事情,更让我确认了存书文件夹不对。Calibre-web有自动转存书籍的功能,放到指定目录的书籍文件,可以自动提取书籍信息并写入数据库,文件也会存到指定文件夹。可我试了很多次,就是不出现新书,在作者的提示下看了Docker运行日志,明明说了存储成功了……来来回回几次,才发现软件一直把它们写入了默认文件下的数据库中。

修改成功

等我重新考虑映射是个什么玩意的时候,发现之前不能解决的、或者发生的奇怪的事情,都有了答案……
  • 这个书库容器我安装了几次,应该是最后一次安装的时候,书库目录的映射,没有安装作者的说明做,自己选择了一个。而我之前应该是按照作者的方案设置的。这样的结果是:之前安装时的一部分书籍,在容器中是默认目录下,并且有自己数据库文件;而在最后一次安装时,书都到了自定义的目录下,那里的数据库文件的信息也是最全的。
  • 在我删除的时候,我删除的是自定义目录中的app.db,在没有了它之后,容器不知怎么会寻找默认目录下的文件并显示出来,于是就会出现半吊子的400多本书的书库。
  • 找到了当前实际使用的app.db所在文件夹后,把它映射到NAS上。这样修改NAS上相关目录的app.db,就等于修改了容器中的文件。于是,解决问题!
  • 我也把存书文件夹映射到了默认的文件夹中,这样就不会再也奇怪的问题出现。

最后

  • 如果对Docker能多了解一点基础知识的话,解决问题的过程就不会这么曲折复杂了。但毕竟不是专业的,我依然倾向于遇到问题再去寻求解决方案。
    • 从零开始一步步研究进去的话,不知道哪些是重点,更不知道学习研究到什么程度停下合适。
      所以,现在的够用就好,遇到问题再解决的态度最适合我。
  • 由于不能修改app.db,过程中我甚至考虑过这样一个方案:用半吊子的app.db登录管理员账号更新容器,而传书看书则用原先的那个……
    • 这个方案直接导致我升级之后,发现自己不能用豆瓣的书籍信息了(因为新版的Calibre-bre把这个功能给彻底关了),真心欲哭无泪。
      等我发现我能映射后,也就能把需要的豆瓣相关的文件放到容器中。所以,目前这个功能运行良好,并且还是最新的。感觉不错。

有点乱,自己做个记录,就这么多。

© 等闲 2021 - 2024