本文最后更新于:2024年5月7日 下午
你是否经常烦恼于友链过多但没有时间浏览?那么友链朋友圈将解决这一痛点。你可以随时获取友链网站的更新内容,并了解友链的活跃情况 。 本文记录后端 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 镜像
1 |
|
部署容器
clone
项目仓库,地址:https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
1 |
|
进入项目目录,运行部署脚本:
1 |
|
有命令行的选项,依次选择 docker
, 部署
,部署端口号,退出
1 |
|
此时会看到多了一个 docker 容器
1 |
|
测试
访问 IP:9595/all
,显示一大堆数据表示部署成功
1 |
|
项目配置
项目配置在仓库中的/hexo_circle_of_friends/fc_settings.yaml
文件:
请根据文件中的注释,结合本节说明,修改其中的内容。
-
OUTDATE_CLEAN:默认为60。超过这个值(距今超过60天)的文章,会在数据库中被删除。
-
LINK:起始的友链页面和爬取策略,支持添加多个,详细见注释说明。
-
SETTINGS_FRIENDS_LINKS:配置项友链。这是一种通用的方法,如果程序不支持爬取你的友链页,请打开此项。
- 其中list字段格式为:
1
2
3[友链名,友链主页地址,友链头像]
# 或者
[友链名,友链主页地址,友链头像,自定义订阅后缀]-
关于json_api选项,4.3.0以后支持通过提供api对友链进行配置,返回格式必须为json,格式如下:
1
{"friends":[[友链1],[友链2],[友链3],[友链4]....]}
其中,友链1、友链2中的内容格式同list字段。
-
GITEE_FRIENDS_LINKS:从gitee issues中获取友链信息,详见yaml文件中的注释。
-
GITHUB_FRIENDS_LINKS:从github issues中获取友链信息,详见yaml文件中的注释。
-
BLOCK_SITE:屏蔽站点,配置在这里的网址不会被爬取。比如,你的友链页添加了自己,并且不想被爬虫获取,就可以把自己的主页地址屏蔽掉。支持正则表达式,举例:
1
2
3
4
5
6
7# block site list
# 添加屏蔽站点
BLOCK_SITE = [
"https://example.com/" # 屏蔽https://example.com/
r".*\.com", # 含有.com的全部屏蔽
r"^http://", # http开头的全部屏蔽
] -
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 部署方式来说,需要进到容器内部修改配置
-
创建容器后,进入容器:
1
docker exec -it circle bash
-
进入
/home/fcircle_src/hexo_circle_of_friends
文件夹,修改其中的fc_settings.yaml
文件,修改LINK
为自己的链接1
2
3
4
5
6LINK: [
{ link: "https://www.zywvvd.com/links/", theme: "fluid" }, # 友链页地址1,修改为你的友链页地址
# { link: "https://noionion.top/link/", theme: "butterfly" }, # 友链页地址2
# { link: "https://immmmm.com/about/", theme: "common1" }, # 友链页地址3
# ...
] -
其余配置项根据实际需求修改
-
退出容器
1
exit
手动运行服务
我们可以模拟 deploy.py
文件的行为手动运行服务
1 |
|
这样服务成功运行起来了,可以访问你的 IP:Port/friend
API 查看爬下来的是不是你的朋友:
如果朋友认领成功,那么后端部署的道路已经通了
查看日志
如果过程中出现了令人不解的状况,可以查看日志
日志文件保存在/tmp/crawler.log
为前缀的文件中,可以通过命令查看:
1 |
|
自动运行
当前的状况是需要手动运行 deploy.py
文件才能运行,不是随开机自动启动的,需要调整一下
docker 容器内创建启动服务脚本
进入容器
1 |
|
在 /home/fcircle_src
创建启动脚本文件 setup.sh
1 |
|
这样在服务器(容器外)就可以通过
docker exec
命令启动这个脚本实现服务启动了修改容器后可以通过
docker commit
命令保存配置于自启动脚本到docker image
创建自动运行脚本
在 /usr/local/friend-circle
文件夹下创建 friend_circle.sh
文件,内容为:
1 |
|
该脚本在创建容器后,可以复活容器并启动友链朋友圈服务
systemctl 添加服务
添加 systemctl
服务随开机启动,创建 /lib/systemd/system/friend-circle.service
文件写入如下内容
1 |
|
配置 systemctl
开机启动 friend-circle
服务
1 |
|
之后重启服务器可以发现 友链朋友圈
服务已经启动,外部可以正常访问
nginx 反向代理
当前访问 IP 为 http 协议,需要反向代理成 https 用于博客使用
1 |
|
至此完成了
友链朋友圈
的后端部署。
参考资料
文章链接:
https://www.zywvvd.com/notes/hexo/website/43-yyyzyyyz-deploy/yyyzyyyz-deploy/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信支付

支付宝支付