RSS

RSS

RSS 服务器端

FreshRSS

Docker 方式运行: (文档)

mkdir -p /root/files/appdata/FreshRSS-data /root/files/appdata/FreshRSS-extensions

docker run -d --restart unless-stopped --log-opt max-size=10m \
  -v /root/files/appdata/FreshRSS-data:/var/www/FreshRSS/data \
  -v /root/files/appdata/FreshRSS-extensions:/var/www/FreshRSS/extensions \
  -e 'CRON_MIN=*/5' \
  -e TZ=Asia/Shanghai \
  --net nginx \
  --env "VIRTUAL_HOST=freshrss.example.com" \
  --env "LETSENCRYPT_HOST=freshrss.example.com" \
  --name freshrss freshrss/freshrss

以上命令参数说明

  • CRON_MIN 是 freshrss 定时任务(负责后台更新feeds数据) 的 crontab 的 MINUTES 字段值。
  • 使用 nginx-proxy 配置了 HTTPS 反向代理,域名 freshrss.example.com。

浏览器打开 https://freshrss.example.com , 会显示初始安装界面,配置管理员用户名和密码等即可(数据库配置为默认的 sqlite 即可)。

配置:

按照官方文档 步骤开启 API。

  1. Under the section “Authentication”, enable the option “Allow API access (required for mobile apps)”.
  2. Under the section “Profile”, fill-in the field “API password (e.g., for mobile apps)”.
    • Every user must define an API password.
    • The reason for an API-specific password is that it may be used in less safe situations than the main password, and does not grant access to as many things.

feeds 数据刷新频率:

FreshRSS 页面 - Configuration - Archiving - Do not automatically refresh more often than 配置项。默认1h (1小时), 页面上最短可以设置为 20m (20分钟). FreshRSS 两次拉取同一个 feed 的时间间隔不会少于这个值(不管是页面上手动刷新还是后台 cronjob 任务自动刷新)。如果需要修改为 < 20m 的值:

cd /root/files/appdata/FreshRSS-data
vi users/admin/config.php

<?php
return array (

  'ttl_default' => 300,

)

文件路径中的 admin 是需要修改配置的用户名。修改 ttl_default 值(秒数)即可。由于 FreshRSS 使用世界上最好的语言 PHP 开发,修改后立即生效。

API 地址:

使用 Google Reader API / Fever API 兼容的客户端连接时,指定 API endpoint 为对应的地址,然后配置用户名和 API 密码即可。

使用:

  • FreshRSS 添加某些 (RSSHub 生产的) RSS 源时需要在 url 后加上 "#force_feed", 否则报错。

RSSHub (Github)

使用 RSSHub 为各种网站创建 RSS 源。

官方服务: https://rsshub.app/ (部分反爬严格的网站无法工作,需要自建)

例如:

RSSHub 使用 node.js 开发。自建支持 Docker / heroku 等部署方式。

Docker + docker-compose 部署

mkdir -p /root/files/appdata/rsshub && cd $_
vim docker-compose.yml
docker-compose up -d

docker-compose.yml : (在官方基础上修改)

version: '3'

services:
    rsshub:
        image: diygod/rsshub
        #network_mode: bridge
        restart: always
        #ports:
        #    - '1200:1200'
        environment:
            NODE_ENV: production
            VIRTUAL_PORT: 1200
            VIRTUAL_HOST: "rsshub.example.com"
            LETSENCRYPT_HOST: "rsshub.example.com"
            CACHE_TYPE: redis
            REDIS_URL: 'redis://redis:6379/'
            PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
        depends_on:
            - redis
            - browserless

    browserless:
        # See issue 6680
        image: browserless/chrome:1.43-chrome-stable
        #network_mode: bridge
        restart: always
        ulimits:
          core:
            hard: 0
            soft: 0

    redis:
        image: redis:alpine
        #network_mode: bridge
        restart: always
        volumes:
            - redis-data:/data

volumes:
    redis-data:

networks:
    default:
        external: true
        name: nginx

以上同样使用 nginx-proxy 在 https://rsshub.example.com 地址提供反向代理(nginx-proxy 运行在 docker 的 "nginx" network 里),注意 RSSHub 的官方 Docker 镜像 http 服务跑在 tcp/1200 端口。

RSS 阅读器

fluent-reader


Last update: 2021-10-22 01:30:21 UTC