你是否经常烦恼于友链过多但没有时间浏览?那么友链朋友圈将解决这一痛点。你可以随时获取友链网站的更新内容,并了解友链的活跃情况 。 本文记录后端 docker 部署流程。
简介 {#简介}
友链朋友圈 是自动获取友链中朋友文章的后端插件
功能概览 {#功能概览}
- 新增前端管理面板,告别繁琐的配置,管理朋友圈更加方便
- 增加极简模式
- 支持 gitee 和 github 上的 issues 友链获取
- 支持butterfly、volantis、matery、sakura、fluid、nexmoe、Yun、stun、stellar、next主题的友链和文章获取
- 支持feed订阅规则,如atom、rss等规则(支持wordpress类型的博客)
- 支持自定义订阅后缀
- 支持站点屏蔽
- 支持按照更新时间和创建时间排序
- 支持未适配的hexo主题和非hexo用户使用,在配置项选择开启配置项友链
- 额外的友链页同时爬取
- 支持添加HTTP代理
- 多种数据存储,提供leancloud,mysql,sqlite,mongodb存储方式
- 多种方式部署,提供github,server,docker部署方式
- 将api整合到主仓库
- 新增友链获取策略的common规则
- 新增api方式的配置项友链
- 将额外友链页和环境变量友链统一为LINK,在配置文件中配置
相关链接 {#相关链接}
- 官方链接:https://fcircle-doc.yyyzyyyz.cn/#/
- 项目仓库地址:https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
后端部署 {#后端部署}
项目支持
github
,server
,docker
三种部署方式,我有服务器,采用 docker 部署方式
下载 docker 镜像 {#下载-docker-镜像}
部署容器 {#部署容器}
clone
项目仓库,地址:https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
进入项目目录,运行部署脚本:
有命令行的选项,依次选择 docker
, 部署
,部署端口号,退出
此时会看到多了一个 docker 容器
测试 {#测试}
访问 IP:9595/all
,显示一大堆数据表示部署成功
项目配置 {#项目配置}
项目配置在仓库中的/hexo_circle_of_friends/fc_settings.yaml
文件:
请根据文件中的注释,结合本节说明,修改其中的内容。
-
OUTDATE_CLEAN:默认为60。超过这个值(距今超过60天)的文章,会在数据库中被删除。
-
LINK:起始的友链页面和爬取策略,支持添加多个,详细见注释说明。
-
SETTINGS_FRIENDS_LINKS:配置项友链。这是一种通用的方法,如果程序不支持爬取你的友链页,请打开此项。
- 其中list字段格式为:
-
关于json_api选项,4.3.0以后支持通过提供api对友链进行配置,返回格式必须为json,格式如下:
其中,友链1、友链2中的内容格式同list字段。
-
GITEE_FRIENDS_LINKS:从gitee issues中获取友链信息,详见yaml文件中的注释。
-
GITHUB_FRIENDS_LINKS:从github issues中获取友链信息,详见yaml文件中的注释。
-
BLOCK_SITE :屏蔽站点,配置在这里的网址不会被爬取。比如,你的友链页添加了自己,并且不想被爬虫获取,就可以把自己的主页地址屏蔽掉。支持正则表达式,举例:
-
HTTP_PROXY :如果想为爬虫设置HTTP代理,将此项设为True,然后根据你选择的数据库不同,添加环境变量。名称为
PROXY
,值为[IP]:[端口]
,比如:192.168.1.106:8080。注意,目前只支持添加一个HTTP代理。 -
MAX_POSTS_NUM :每个友链最多获取几篇文章,此值越大,则抓取的文章上限越多,相应地运行速度也会降低,反之亦然。默认为
5
。 -
DATABASE :数据的存储方式,目前支持将数据保存在
leancloud
、mysql
、sqlite
、mongodb
,默认为sqlite
。 -
DEPLOY_TYPE :整个项目的部署方式,目前支持将项目部署在
github
、server
、docker
,默认为github
。
修改内容 {#修改内容}
- 这里我们需要修改的是
LINK
,将其修改为自己的友链链接 - 其余一般可以不用修改
修改配置 {#修改配置}
明白了配置项都有啥,以及我们需要修改什么,那么就是如何改的问题了
无论如何部署,核心都是运行 run.py
文件,他调用的是和自己同层的 fc_settings.yaml
文件
也就是说,我们需要修改真正运行的 run.py
文件旁边的配置文件
-
对于 docker 部署方式来说,需要进到容器内部修改配置
-
创建容器后,进入容器:
-
进入
/home/fcircle_src/hexo_circle_of_friends
文件夹,修改其中的fc_settings.yaml
文件,修改LINK
为自己的链接 -
其余配置项根据实际需求修改
-
退出容器
手动运行服务 {#手动运行服务}
我们可以模拟 deploy.py
文件的行为手动运行服务
这样服务成功运行起来了,可以访问你的 IP:Port/friend
API 查看爬下来的是不是你的朋友:
如果朋友认领成功,那么后端部署的道路已经通了
查看日志 {#查看日志}
如果过程中出现了令人不解的状况,可以查看日志
日志文件保存在/tmp/crawler.log
为前缀的文件中,可以通过命令查看:
自动运行 {#自动运行}
当前的状况是需要手动运行 deploy.py
文件才能运行,不是随开机自动启动的,需要调整一下
docker 容器内创建启动服务脚本 {#docker-容器内创建启动服务脚本}
进入容器
在 /home/fcircle_src
创建启动脚本文件 setup.sh
这样在服务器(容器外)就可以通过
docker exec
命令启动这个脚本实现服务启动了修改容器后可以通过
docker commit
命令保存配置于自启动脚本到docker image
创建自动运行脚本 {#创建自动运行脚本}
在 /usr/local/friend-circle
文件夹下创建 friend_circle.sh
文件,内容为:
该脚本在创建容器后,可以复活容器并启动友链朋友圈服务
systemctl 添加服务 {#systemctl-添加服务}
添加 systemctl
服务随开机启动,创建 /lib/systemd/system/friend-circle.service
文件写入如下内容
配置 systemctl
开机启动 friend-circle
服务
之后重启服务器可以发现 友链朋友圈
服务已经启动,外部可以正常访问
nginx 反向代理 {#nginx-反向代理}
当前访问 IP 为 http 协议,需要反向代理成 https 用于博客使用
至此完成了
友链朋友圈
的后端部署。
参考资料 {#参考资料}
文章链接:
https://www.zywvvd.com/notes/hexo/website/43-yyyzyyyz-deploy/yyyzyyyz-deploy/