电子书阅读的新姿势——用树莓派搭建Calibre电子书Web服务器与frp内网穿透公网访问
服务器在以前只存在公司或者电信运营商的机房里,需要昂贵的设备和苛刻的环境还有专业人员的维护,是普通人家庭根本不太可能拥有的。
而现在,随着电子设备性能越来越强大,越来越多的人可以自己在家搭建服务器了。
兼顾性能与功耗,我选择了树莓派,于我而言足矣。
当然你也可以根据自己喜好来选择满足自己需求的设备,可以是群晖之类的NAS,也可以是惠普 Gen8之类的微型服务器,如果自己家有独立的机房,也可以立服务器机柜,装机架服务器。
先有需求,再谈配置。
系统根据自己的实际需要,装了Raspbian,日常主要用到功能就是电视上看看下载的电影,手机上的照片备件,电子书等文件存档,内网穿透,将家里的服务映射到外网,使用服务不局限于局域网,实现随时随地访问。
samba -----------------局域网文件共享
sshfs------------------广域网文件共享
ssh------------ -------远程管理
vnc/xrdp---------------远程桌面
aria2/transmission-----远程下载
nextcloud--------------私有云
syncthing---------------文件同步
nginx-------------------web服务
frp---------------------内网穿透
emby/jellyfin-----------视频管理
calibre-----------------电子书管理
这里只涉及树莓派上的calibre电子书管理,其他的如有需要,以后再补坑。
介绍
Calibre 是一款免费、开源的电子书管理软件,涵盖了多个平台,让你可以随时访问下载你的电子书,特别是使用 kindle。Calibre可以安装多个平台(Windows/macOS/Linux),本文主要介绍 Calibre 在树莓派上的部署和使用。
方案对比
如果是在群晖上,可以使用docker 安装,简单方便,在树莓派上也可以使用docker安装,但是出于性能上的考虑,我选择了直接安装,毕竟多了额外的虚拟机开销。
另外也有人会配合calibre-web使用来提供web服务,虽说功能可能会多一点,界面会好看一些,但是我个人觉得没必要。
Calibre-web 是用 python 写的服务端,界面美观,功能全面,有原作者提供的现成 Docker 可以用,不过有不少人评论服务不是很稳定。
使用Calibre自带的web共享服务已经中足够满足我的需要,利用calibre-server 服务同样可以在不打开图形界面的情况下提供服务,我觉得是最节省资源的性能最优方案。
环境准备
树莓派3B/树莓派4
树莓派安装好 Raspbian 系统
nginx(可选,如果不需要在外网访问的话)
frp或者其他内网穿透工具(可选,如果不需要在外网访问的话)
域名(可选,如果不需要在外网访问的话)
安装 Calibre
更新源
sudo apt-get update
安装Calibre
sudo apt-get install calibre
图形化界面初始化设置
利用vnc/xrdp远程打开图形界面,打开软件:开始-办公-calibre
欢迎向导 - 选择语言 -选择书库位置(默认是用户pi的主目录,可以改到移动硬盘的某个目录,我这里是/media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库',注意文件夹名带空格要打引号)
选择电子书阅读设备。
配置邮箱,这里选择Hotmail(windows live mail)。
配置完成。
从文件夹导入书籍,然后就可以关闭软件了。
以上操作也可以在非图形化界面上完成。
命令行初始化设置
更新源
sudo apt-get update
安装 xvfb
sudo apt-get install xvfb
安装 imagemagick
sudo apt-get install imagemagick
创建 Calibre Library
mkdir /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库'
mkdir /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/books
先添加一本 mobi 格式的电子书到/media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/books,然后使用使用calibredb命令通过我们之前安装的xvfb虚拟显示将这些书添加到 Calibre 数据库:
# 添加
xvfb-run calibredb add /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/books/* --library-path /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库'
# 列表
xvfb-run calibredb list --library-path /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库'
# 删除,id 在 list 中可得
xvfb-run calibredb remove id --library-path /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库'
图形界面启动服务
Calibre web 服务可以通过图形界面开启,但是图形界面的开机启动不太方便。
连接/共享 - 启动内容服务器
服务随软件自动运行
命令行启动服务
calibre-server --port=8080 /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库'
systemd自启动服务
编写 calibre-server.service 文件。
sudo nano /etc/systemd/system/calibre-server.service
内容:
[Unit]
Description=calibre content server
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/bin/calibre-server --port=8080 /media/pi/02bdbf05-2750-4729-9ba7-34243617d4e7/'Calibre 书库'
[Install]
WantedBy=multi-user.target
然后enable起来,试一下.
sudo systemctl enable calibre-server
sudo systemctl daemon-reload
sudo systemctl restart calibre-server
sudo systemctl status calibre-server
然后,打开浏览器 http://你的树莓派IP:8080 ,即可。
frp内网穿透
frp配置
有中文说明很详细。
nano ~/frp/frpc.ini
内容
[pi_calibre]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8088
然后,就可以通过 http://你的frp服务器外网IP:8088 访问了。
域名访问
使用acme.sh申请Let's Encrypt 免费HTTPS证书,记住证书和Key的位置。
有中文说明很详细。
wget https://get.acme.sh | sh
acme.sh --issue --dns dns_ali --force -d 你的域名 # Let’s Encrypt 证书自动生成
.acme.sh/acme.sh --upgrade --auto-upgrade #自动更新
nginx 配置
nano /etc/nginx/conf.d/calibre.conf
内容
server {
# listen 80;
listen 443 ssl;
server_name 你的域名;
ssl_certificate /home/pi/.acme.sh/你的域名/你的域名.cer;#你的域名证书位置
ssl_certificate_key /home/pi/.acme.sh/你的域名/你的域名.key;#你的域名证书Key位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8080/;
}
然后,就在任何地点通过 https://你的域名 访问你的电子书库了。
我的另外一个部署在树莓派上的电子书网站提供电子书下载服务。










incarnate
校验提示文案
[已注销]
校验提示文案
enginnerbang
校验提示文案
看豆科技
校验提示文案
安步赴烟途
校验提示文案
天高云淡寄浮生
校验提示文案
chemharuka
校验提示文案
moonking
校验提示文案
正常人是稀有品种
校验提示文案
值友3138096958
校验提示文案
值友4220960622
校验提示文案
安步赴烟途
校验提示文案
值友4220960622
校验提示文案
incarnate
校验提示文案
值友3138096958
校验提示文案
[已注销]
校验提示文案
正常人是稀有品种
校验提示文案
看豆科技
校验提示文案
chemharuka
校验提示文案
天高云淡寄浮生
校验提示文案
enginnerbang
校验提示文案
moonking
校验提示文案