VPS搭建FreshRSS自建RSS阅读器:免广告、全平台同步订阅源

Docker部署、添加RSS源、手机端NetNewsWire/FeedMe同步和HTTPS反代
发布于
1

Google Reader死了之后,Feedly收费、Inoreader限速、国内RSS服务一个接一个关停。在VPS上用Docker搭个FreshRSS,数据自己管、没广告、不限订阅源数量、手机和电脑都能同步阅读进度。

Docker部署一条命令

docker run -d --restart always 
  -p 8088:80 
  -e CRON_MIN='5,35' 
  -v freshdata:/var/www/FreshRSS/data 
  -v freshext:/var/www/FreshRSS/extensions 
  --name freshrss 
  freshrss/freshrss:latest

# 访问 http://VPS_IP:8088 进初始化向导

首次访问创建管理员账号,数据库选SQLite(够用、零配置)。完成后登录进主界面→右上角齿轮→”认证”→勾选”允许API访问”→保存密码(后面手机客户端用)。

雨云入门VPS月付几块钱跑FreshRSS绰绰有余——RSS阅读器不吃资源。优惠码 admin01 首月五折。

添加订阅源

右上角”订阅管理”→”添加订阅源”→粘贴RSS地址。支持普通RSS/Atom和JSON Feed。填完点”添加”,FreshRSS自动抓取最新文章。

怎么找RSS源?大部分博客、新闻网站都有RSS——在网址后面加 /feed、/rss、/atom.xml 试试。或者用RSSHub(rsshub.app)——一个能把几乎所有网站转换成RSS的工具,支持微博、知乎、B站、Twitter等几百个源。

导入OPML:如果之前用其他RSS阅读器(Feedly、Inoreader),导出订阅列表为OPML文件,在FreshRSS的”订阅管理”→”导入”上传,几十个订阅源一次性迁过来。

手机客户端同步

FreshRSS支持Google Reader API兼容接口,大部分RSS客户端都能对接。推荐两个免费客户端:

  • NetNewsWire(iOS/Mac免费开源):设置→添加账户→FreshRSS→填服务器地址(https://你的域名/api/greader.php)+用户名+API密码
  • FeedMe(Android免费):设置→FreshRSS→填地址和认证信息

配好后手机端阅读的所有进度自动同步回FreshRSS服务器——电脑上看到一半的文章,手机上接着看。

配置自动更新频率

docker run时设的CRON_MIN参数就是更新频率——’5,35’表示每小时的第5和第35分钟各抓一次(每半小时)。这个频率对大多数订阅源足够——新闻网站和博客半小时更新一次够了。

高频抓的话改CRON_MIN为’*/15’(每15分钟)或’*/5’(每5分钟)。太频繁可能被源站限流——有的网站检测到频繁抓取会封IP。FreshRSS用VPS出口IP抓取,固定一个IP不会触发太多风控。

Nginx反代HTTPS

apt install nginx certbot python3-certbot-nginx -y
nano /etc/nginx/sites-available/freshrss

server {
    listen 80;
    server_name rss.你的域名.com;
    client_max_body_size 10M;
    location / {
        proxy_pass http://127.0.0.1:8088;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

ln -s /etc/nginx/sites-available/freshrss /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d rss.你的域名.com

和商业RSS服务的对比

功能 FreshRSS Feedly免费 Inoreader免费
订阅源数量 不限 100个 150个
广告 有广告 有广告
全文搜索 付费 付费
API开放 完整Google Reader API 付费 有限
数据归属 你的服务器 Feedly服务器 Inoreader服务器

常见问题

有些RSS源抓取不到内容?

有的网站RSS只输出标题和摘要(不输出全文)。在添加订阅源时勾选”检索全文”,FreshRSS会尝试从原始网页提取全文。成功率因网站而异——有些网站结构复杂提取不全。用RSSHub生成的源通常自带全文。

FreshRSS数据库选SQLite以后能换吗?

SQLite在订阅源几百个、文章几万篇时性能无压力。只有到了”几千个源、百万篇文章”的量级才需要换MySQL/PostgreSQL。普通用户用SQLite就够了,不用换。

手机客户端显示”未授权”?

确认FreshRSS后台勾选了”允许API访问”。确认API密码填的是后台”认证”页面设置的密码(不是登录密码,是单独的API密码)。确认URL结尾有/api/greader.php。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

想关注一个人的微博更新但不想每天刷APP?RSSHub能把几乎所有网站变成RSS订阅源,装在你的VPS上,配合FreshRSS(第32篇ID 13574)就能用RSS阅读器看微博、知乎、B站、Twitter、YouTube等几百个平台的内容