树莓派 篇一:电子书阅读的新姿势——用树莓派搭建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
校验提示文案
天翼看豆
校验提示文案
angussleeping
校验提示文案
天高云淡寄浮生
校验提示文案
chemharuka
校验提示文案
moonking
校验提示文案
正常人是稀有品种
校验提示文案
值友3138096958
校验提示文案
值友4220960622
校验提示文案
angussleeping
校验提示文案
值友4220960622
校验提示文案
incarnate
校验提示文案
值友3138096958
校验提示文案
呆木熊
校验提示文案
正常人是稀有品种
校验提示文案
天翼看豆
校验提示文案
chemharuka
校验提示文案
天高云淡寄浮生
校验提示文案
enginnerbang
校验提示文案
moonking
校验提示文案