2019-3-21
同步作者代码更新
添加多用户版及教程(多用户版可切换成单用户版,单用户版不可切换成多用户版)
之前我们推送Kindle总是找各种网站来推送,不但麻烦,而且很多还有限制,每天一本,很是恶心,要不然就要买VIP,我本人买了好几个网站的VIP,去年全都跑路了,目前只有一个还没有跑路,所以以后收集到好的图书,就可以自己管理了,想看的时候直接推送过去,方便多了
我找了很久calibre的docker,自己也制作过几个,但是都不理想,后来在Github上发现了这个项目,找到作者沟通后,修改成为单机版使用
感谢作者的源码,Docker跑起来后,可以在首页找到站点源码的链接,和作者书库的打包!
言归正传,开始群晖教程
群晖安装教程
打开群晖Docker—注册表—搜 oldiy 找到 my-calibre-webserver-docker 双击下载,tag选择 latest
如果你有域名有备案想用多用户版,可以tag选择multi-user,否则请使用latest单机版!
多用户版支持QQ,微博,github登录方式!(没有备案域名可以使用github登录方式)多用户版设置,请查看文章底部管理员设置方式!
映像——找到my-calibre-webserver-docker双击安装
改名字,高级设置——创建快捷方式
添加一个卷,映射到本地文件夹,装载路径不可以修改
映射端口
应用——创建容器吧!
容器跑起来之后,我们修改一下smtp,用来推送Kindle
如果使用QQ邮箱,需要打开smtp服务,然后获取授权码(相当于密码)
拿到授权码之后,我们修改一下文件,找到我们本地目录,此时会自动生成几个文件夹,找到如下位置,首先修改权限,不然无法保存
之后,编辑文件,将你自己的smtp,用户名,密码,填写进去,保存文件(如果双击不能打开,需要安装群晖套件——文本编辑器)
之后我们要打开群晖防火墙,放行8000端口
因为修改了配置文件,所以我们重启一下容器就可以正常推送了!
最后,打开网页开始享受自己的图书管理系统吧!打开网页之后,记得先点击登录,才可以使用全部功能!图书删除的话,书库不能少于24本图书,否则程序设置会导致错误!
多用户版配置教程
下载镜像使用tag标签multi-user
按单机版配置后启动容器
进入本机挂载目录 如:/docker/book/data/release/www/calibre.talebook.org/my-calibre-webserver/webserver
找到settings.py
编辑smtp信息,用于推送
编辑douban_apikey信息,用于豆瓣削刮器,因豆瓣已停止API申请,如果没有默认不需要设置!只会从百度获取信息!
编辑微博登录API,QQ登录API,github登录API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# See: http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28 'smtp_server' : "smtp.163.com", 'smtp_username' : "oldiy@163.com", 'smtp_password' : "password123", 'douban_apikey' : "default-apikey", # See: http://open.weibo.com/developers 'SOCIAL_AUTH_WEIBO_KEY' : '00000c00fd00fd00d00d9', 'SOCIAL_AUTH_WEIBO_SECRET' : '09f0d0f0d0f000d0f00d0f0d00f00d000f0d0f', # See: https://connect.qq.com/ 'SOCIAL_AUTH_QQ_KEY' : '34523jk543jk2h5343', 'SOCIAL_AUTH_QQ_SECRET' : '34j5kljk343fb43b43b5bb5bb5b545b4b5b4', # See: https://github.com/settings/applications/new 'SOCIAL_AUTH_GITHUB_KEY' : '43b2exxxxxxxxxxbed5d7', 'SOCIAL_AUTH_GITHUB_SECRET' : 'a22d9xxxc75a4db605xxxb27306a574696xxxxx', |
其中github登录无需备案域名,任何人均可申请
申请地址 # See: https://github.com/settings/applications/new 管理地址 https://github.com/settings/developers
Authorization callback URL回调地址填写 http://你的域名+端口号/complete/github.do
配置好以上信息之后,重启容器,并使用任意一种已设置的登录方式登录
之后打开网页 http://你的域名/user ,查看用户ID 如 1 – oldiy ,那么记得ID为1
进入容器终端,输入命令设置管理员
1 2 3 4 5 6 7 8 |
#连接数据库 sqlite3 /data/books/develop.db #设置管理员,注意最后的id = 1 ,1为你上面查看到的ID UPDATE readers SET admin = 1 WHERE id = 1; #断开数据库连接 .quit |
关闭终端,刷新网页即可看到管理员入口!
- 本站教程,未注明转载均为原创内容,仅做为学习参考使用,切勿用于非法及商业用途!造成的后果作者不承担任何责任!
- 如果转载请注明出处!oD^Blog
- 本文如果需要更新,或者失效请联系微信 : oldiy2018 【微信不解答任何问题,不接收任何红包!】
- 如果支持作者,请点击下方赞赏,支持一杯饮料!
- 如果有问题可以点击【加入电报群】和我一起沟通或者下方留言讨论!
微信赞赏支付宝赞赏
这个怎么批量上传图书呢,我试了下每次只能一个文件
试了一下,似乎任何用户都能直接登录然后添加书籍,安全性有点问题吧
这个是单机使用的,如果多用户使用,需要自己申请QQ登录,和微博登录的API才可以,配置文件内关闭单用户,设置好API即可
博主威武,这么快就打包好了,终于用上了,哈哈,感谢
顺便说一下,博主的电报群链接打不开呀,没玩过Telegram,不知道是否有QQ群
先下载TG安装后才能刚打开链接
博主,calibre-webserver中文网页版 可以支持在线查看PDF文档吗?
不支持PDF
跑起来了,挺好玩的。书籍是需要自己一本一本添加的吗?能不能直接导入Calibre程序的数据和内容?我有五六千本书,一本一本添加要累死人的。
可以批量添加,但是要去终端使用命令添加# /data/books/upload/书籍放在这个目录执行下面的命令
calibredb add –library-path=/data/books/library/ -r /data/books/upload/
release里面没有文件
现在成功,我把book删除了,重新安装就出现了。谢谢
博主,能否有多用户登录的教程
谁能把电子书共享一下,装好了,没书,硬盘闲得慌
感谢楼主的分享,有两个小问题。1:批量上传的问题、2:我有自己的域名,这样外网也可以访问这个,但是好像不能设置密码。这样如果别人知道了我的端口号不就可以进来了
查看github官方文档 docs,里面有修改单机和网络版的办法~!
calibredb add –library-path=/data/books/library/ -r /data/books/upload/
这个命令是不是错的,运行不了
没有错,你需要到docker容器终端内去执行命令,不是在宿主机ssh内执行
我是在容器里执行的,昨天还给你回复了,好像给你回复是回复不了的
root@oldiy-my-calibre-webserver:/# calibredb add -library-path=/data/books/library/ -r /data/books/upload/
Traceback (most recent call last):
File “/usr/bin/calibredb”, line 20, in
sys.exit(main())
File “/usr/lib/calibre/calibre/library/cli.py”, line 1640, in main
return command(args[2:], dbpath)
File “/usr/lib/calibre/calibre/library/cli.py”, line 467, in command_add
do_add(get_db(dbpath, opts), args[1:], opts.one_book_per_directory,
File “/usr/lib/calibre/calibre/library/cli.py”, line 68, in get_db
raise ValueError(‘No saved library path, either run the GUI or use the’
ValueError: No saved library path, either run the GUI or use the –with-library option
你重启一下容器,看看图书添加成功没有
没有,没变化
504 Gateway Time-out
nginx
给你回复时会跳到这里
重启容器了吗
重启过了,没有添加
应该是calibredb add –library-path=/data/books/library/ -r /data/books/upload/
calibredb add –library -path=/data/books/library/ -r /data/books/upload/
library前面是两个横杠,path前面是一个空格加一个横杠。可能是网页显示问题。这里有误解。
calibredb add –library-path=/data/books/library/ -r /data/books/upload/
试一下
如何配置成https访问?
跟上面的仁兄报一样的错误,书籍也没有添加进去.
另外,这个镜像好大,有1G大小,能换个底包让尺寸小一点吗?
alpine没有calibre,作者的代码,需要这个,以后我有时间的话看一下能不能手动安装一个 caliber吧
大佬您好 非常感谢提供的书库docker 一直都在找这个 现在有点问题 修改书籍信息能不能自定义修改 还有为什么一开始用豆瓣削刮的好好的 突然就无法搜索了 非常感谢
不支持自定义修改,豆瓣削刮器没问题,可能是源程序的问题,目前测试如果削刮器死掉的话,一般反代一下,不用域名+端口访问就可以!
豆瓣削刮器API已失效
晕~~失效了~~~
博主,能和作者反馈一下,单用户的版本,能设置个密码吗?因为暴露在外网,可以随便删除书箱,这样不太安全
程序没这功能,可以用反代加密码
博主,你好,我把原来的单机版删了,重新安装多用户版,但现在date映射的目录里没有文件,但网页又能访问,不知道什么原因
你要把之前date目录清空才可以
你好,github中申请api的Authorization callback URL应该填写什么,谢谢
Authorization callback URL回调地址填写 http://你的域名+端口号/complete/github.do
谢谢,已经可以登陆了
root@oldiy-my-calibre-webserver-docker1:/# calibredb library-path=/data/books/li
brary/ -r /docker/book/books/upload/add
Usage: calibredb command [options] [arguments]
calibredb is the command line interface to the calibre books database.
command is one of:
list
add
remove
add_format
remove_format
show_metadata
set_metadata
export
catalog
saved_searches
add_custom_column
custom_columns
remove_custom_column
set_custom
restore_database
check_library
list_categories
backup_metadata
clone
embed_metadata
search
不能批量添加图书。。。
图书是放在upload根目录下了吗
放到根目录了,似乎命令有误
批量还是添加不了额~~~
作者群里问问
如何让访客无法删除图书?
单用户版不支持,多用户版可以
碰巧看到博文,看到这个博客主题蛮好的,已经装上了,请教下左侧的那个图标怎么加上呢?需要哪里设置?
在主题设置里就可以设置,图片是主题自带的
你好,这个图书我重新安装了好多次,映射到本地文件夹:docker/book,装载路径:/date。但是无法在docker/book下找到任何生成的文件或者文件夹,图书页面可以正常启动,添加书籍也可以,就是找不到他们的文件。
使用管理员登录群晖
博主好,在这个博客里安装了好几个超酷的应用,非常感谢!
之前安装music的时候,发现在docker/music下找不到任何文件,但是因为占用小,所以也不是很在乎,之后安装aria2和图书时,就发现安装教程的路径设置下,aria2下载的文件能在http://ip:6802下能看到,但是就是找不到在哪里。图书也是,安装后想去文件夹里找文件设置kindle的推送相关,也是无法找到任何文件。
请教下这种情况该如何解决呢?谢谢!
挂载卷错误
跟calire的数据库是一样的
测试无误
我多个docker的图书馆挂着同一个图书目录
没有问题
请教一下,博主制作的docker如何修改默认端口呐?现在是8000,想修改到别的端口,十分感谢!
部署容器时,本地端口自己改就可以
The following books were not added as they already exist in the database (see —
duplicates option):
Traceback (most recent call last):
File “/usr/bin/calibredb”, line 20, in
sys.exit(main())
File “/usr/lib/calibre/calibre/library/cli.py”, line 1640, in main
return command(args[2:], dbpath)
File “/usr/lib/calibre/calibre/library/cli.py”, line 469, in command_add
tags, opts.series, opts.series_index, opts.cover, identifiers, lcodes, opts.
filters)
File “/usr/lib/calibre/calibre/library/cli.py”, line 343, in do_add
title = title.encode(preferred_encoding)
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-3: ordin
al not in range(128)
出现以下错误,???怎么弄?求解啊
到作者群里问问吧
已经实现登录和批量上传了,非常感谢博主的教程和容器!
你好,批量上传那个命令运行并不起作用不知何故。按照您的教程出现了管理员入口,点进去以后就显示“500: Internal Server Error”了是怎么回事啊。还有我通过网页的“添加书籍”按钮上传书籍,在网站上是有显示添加书籍成功也出现了的,但是我在宝塔里面查找上传的书籍,却怎么都找不到,想知道是上传到哪个目录了呢?最后一个问题:)你的网站经常性打不开呢
500错误重启下容器,网站打不开是因为服务器最近不稳定