利用蚁阅开源版自建RSS阅读器

折腾小记
240 6

因为考研和法考的事情,已经很久没有更新了,没想到会是以这样的方式开启新年的第一篇文章。想写这个的原因主要是这个思路简单,比写年度总结简单多了。

搭建这个的原因主要是之前的feedbro不知道怎么数据丢失了,可能是电脑之前重装过一回,或者是它真的是因为谷歌浏览器的更新数据丢失了,所以准备自建一个RSS阅读器,只要有网络,任何设备访问浏览器即可畅快浏览文章。基本上输入首页地址,可以自动查找订阅源,智能快速。

蚁阅特点

  • 全平台,无广告,无推荐,专注阅读
  • 支持全文阅读,支持播客和视频内容
  • 智能查找订阅源,智能裂图修复
  • 支持夜间模式,全球 RSS 均可订阅
  • 开源,开箱即用,也支持自己部署

准备工作

  1. 服务器一台,本文以甲骨文centos为例
  2. 服务器装好宝塔操作面板
  3. 安装nginx

一、服务器安装Docker

我不喜欢用宝塔商店里的Docker,虽然很方便对新手很友好,但毕竟是基于宝塔程序上的Docker,会有一定的改动,不利于其他程序在Docker上运行。需要sudo su root切换管理员执行下列命令

# 安装yum组件
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加docker仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum缓存
yum makecache fast
# 安装docker-ce
yum -y install docker-ce

# 配置镜像加速器
mkdir -p /etc/docker
echo '{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}' >/etc/docker/daemon.json
systemctl daemon-reload && systemctl restart docker.service && systemctl enable docker.service

# 显示docker版本
docker version

如果你是国内服务器,需要配置镜像加速器,执行这一步即可。
国外服务器则直接执行

systemctl daemon-reload && systemctl restart docker.service && systemctl enable docker.service

二、准备蚁阅配置文件

本想用vi命令直接创建这一文件,无论是切换管理员依然没有权限,于是利用宝塔面板进入/root/目录,新建了/rssant/文件夹,并新建文件rssant.env,将如下代码放置进去并保存。

# 默认关闭DEBUG,请勿在开发测试之外开启DEBUG
RSSANT_DEBUG=0

# 请随机生成一个字符串
RSSANT_SECRET_KEY=SECRET

# 应用的访问地址
RSSANT_ROOT_URL=http://localhost:6789

# 检查订阅的时间间隔,默认30分钟
RSSANT_CHECK_FEED_MINUTES=30

# 请前往GITHUB设置页面申请,不需要Github登录可留空
# GitHub OAuth callback:
# http://<你的域名>/api/v1/accounts/github/login/callback/
RSSANT_GITHUB_CLIENT_ID=
RSSANT_GITHUB_SECRET=

# SMTP邮件功能,不需要注册功能可留空
RSSANT_ADMIN_EMAIL=
RSSANT_SMTP_ENABLE=false
RSSANT_SMTP_HOST=smtp.qq.com
RSSANT_SMTP_PORT=465
RSSANT_SMTP_USE_SSL=true
RSSANT_SMTP_USERNAME=
RSSANT_SMTP_PASSWORD=

# RSS代理功能,可留空
# 参考项目 cloudflare_worker/rssant 目录下的说明部署代理
RSSANT_RSS_PROXY_ENABLE=false
# https://<your-cloudflare-worker>.workers.dev/rss-proxy
RSSANT_RSS_PROXY_URL=
RSSANT_RSS_PROXY_TOKEN=

# 以下配置保持不动
RSSANT_SCHEDULER_NETWORK=rssant
RSSANT_PG_DB=rssant
RSSANT_PG_HOST=localhost
RSSANT_PG_USER=rssant
RSSANT_PG_PASSWORD=rssant

二、创建启动服务脚本

将如下代码保存到/root/rssant/start.sh,由于服务器start.sh没有这一文件,和上步一样需要手动创建,其中6789可改为自定义端口

#!/bin/bash

docker volume create rssant-data || true
docker volume create rssant-postgres-data || true
docker volume create rssant-postgres-logs || true

docker rm -f rssant || true
docker run -ti --name rssant -d \
    -p 6789:80 \
    --env-file ~/rssant/rssant.env \
    -v rssant-data:/app/data \
    -v rssant-postgres-data:/var/lib/postgresql/11/main \
    -v rssant-postgres-logs:/var/log/postgresql \
    --log-driver json-file --log-opt max-size=50m --log-opt max-file=10 \
    --restart unless-stopped \
    guyskk/rssant:latest

docker logs --tail 1000 -f rssant

三、拉取镜像

docker pull guyskk/rssant:latest

四、启动脚本

先执行 sed -i 's/\r//' ~/rssant/start.sh 处理脚本换行符,再启动服务,直接输入此代码即可执行 bash ~/rssant/start.sh,当看到下面的日志时,服务就启动好了。

# 初始化数据库的日志
I 2019-12-22 11:01:36 scripts.django_db_init:26   extension hstore created
I 2019-12-22 11:01:36 scripts.django_db_init:33   create admin user
I 2019-12-22 11:01:36 scripts.django_db_init:41   update site info
I 2019-12-22 11:01:36 scripts.django_db_init:53   create github social app
# 程序正常运行中的日志
I 2019-12-22 13:16:08 rssant_harbor.actors.rss:418  delete 0 old feed creations
I 2019-12-22 13:16:08 rssant_harbor.actors.rss:423  retry 0 status=UPDATING feed creations
I 2019-12-22 13:16:08 rssant_harbor.actors.rss:429  retry 0 status=PENDING feed creations

执行 docker exec -ti rssant supervisorctl status, 以下进程状态说明一切正常:

api                              RUNNING   pid 9, uptime 0:10:03
async-api                        RUNNING   pid 10, uptime 0:10:03
harbor                           RUNNING   pid 11, uptime 0:10:03
initdb                           EXITED    Dec 22 01:15 PM
nginx                            RUNNING   pid 15, uptime 0:10:03
postgres                         RUNNING   pid 17, uptime 0:10:03
scheduler                        RUNNING   pid 19, uptime 0:10:03
worker                           RUNNING   pid 21, uptime 0:10:03

访问 http://localhost:6789/admin/ 用户名: admin 密码: admin
点击页面右上角 "CHANGE PASSWORD" 修改密码。

绑定域名

这一步骤还是由大鸟博客提供的教程,本想做docker端口转发的,但懒的折腾了,还是就这样用着吧,目前一切使用良好。

  1. 新建网站,如feed.abcd.com,并将域名解析到服务器ip
  2. 申请证书并开启强制ssl,如不需要ssl访问,可以忽略这一步,如果需要ssl,一定要按照此步骤进行
  3. 设置反向代理,如下图

rss.png

后台翻译

后台是由Njango搭建的,根据我的实验,大致是配置github登陆,修改成员密码邮箱,管理订阅源,成员的订阅源以及订阅内容的修改删除操作,功能如下图

rssshezhi.png

其次是备份数据,以防服务器损坏数据无法恢复,方法请参考这篇文章

最后更新 2022-07-27
评论 ( 6 )
OωO
隐私评论
  1. 这个不错,准备部署一个

    19天前回复
  2. 感谢!已经做好了!就是启动脚本时间太长了,我还以为我弄错了。等了好久才好~

    21天前回复
    1. @小元

      不会啊,我这里是几乎秒启动,出现输出界面就行了,那个好像是脚本实时执行状态,我直接就退出来了

      21天前回复
      1. @随和往记

        是嘛我启动的有点慢,但是后面还行。非常快~现在在往里面添加内容。

        21天前回复
  3. 老张博客

    来个宝塔的教程。。

    6个月前回复
    1. @老张博客

      貌似还真没有,不太会用宝塔的docker,应该大同小异吧

      6个月前回复