背景/引言

无论是帖子还是短视频都隐藏着推荐算法,这些算法把我们困在信息茧房中,为了破除这些信息茧房,我想到了“失传已久”的RSS。

实现

需求分析

  1. 能够推送高质量内容 -> 需要对内容进行选择
  2. 能够实现内容聚合 -> 利用RSS很容易实现

问题与解决方案

  1. 现在几乎没有网站提供RSS内容了
  2. 高质量内容难找

扩展需求

  1. 每日pixiv
  2. 英语新闻阅读

我的方案

服务说明

RSSHUB: 一个中间件,可以将不支持RSS的站点转出RSS,例如: bilibili,贴吧,pixiv等,具体可以去[路由列表 | RSSHub](https://docs.rsshub.app/zh/routes/)查看
FreshRSS: 一个RSSweb平台,便于我们多端同步并且支持插件
	PS: 两者皆支持arm架构设备部署,也许可以用电视盒子实现?

部署

RSSHUB:

vim docker-compose.yml
services:
  rsshub:
    image: diygod/rsshub
    restart: always
    ports:
      - '1200:1200'
    # 加载 .env 文件中的配置 (GitHub Token, OpenAI Key 等)
    env_file: .env
    environment:
      # --- 覆盖网络配置以匹配 Docker 内部网络 ---
      # 注意:Docker 内部通信使用容器名和内部端口,不需要使用宿主机映射的端口
      NODE_ENV: production
      CACHE_TYPE: redis
      # 内部连接 Redis 标准端口 6379
      REDIS_URL: 'redis://redis:6379/'
      # 连接 Browserless 标准端口 3000
      PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
      # 连接 Real-Browser 标准端口 3000
      PUPPETEER_REAL_BROWSER_SERVICE: 'http://real-browser:3000'
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:1200/healthz']
      interval: 30s
      timeout: 10s
      retries: 3
    depends_on:
      - redis
      - browserless
      - real-browser

  # 新版 RSSHub 推荐搭配,用于绕过 Cloudflare
  real-browser:
    image: ghcr.io/hyoban/puppeteer-real-browser-hono
    restart: always
    ports:
      - '3002:3000' # 如果你需要在宿主机调试,访问 localhost:3002
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:3000']
      interval: 30s
      timeout: 10s
      retries: 3

  # 标准 Puppeteer 服务
  browserless:
    image: browserless/chrome
    restart: always
    ulimits:
      core:
        hard: 0
        soft: 0
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:3000/pressure']
      interval: 30s
      timeout: 10s
      retries: 3

  redis:
    image: redis:alpine
    restart: always
    ports:
      - '6380:6379' # 宿主机 6380 -> 容器 6379。配合你之前的习惯
    volumes:
      - redis-data:/data
    healthcheck:
      test: ['CMD', 'redis-cli', 'ping']
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 5s

volumes:
  redis-data:
vim .env
# =============================================================================
# 基础配置
# =============================================================================

# --- 系统环境 ---
NODE_ENV=production

# --- 缓存配置 (Redis) ---
CACHE_TYPE=redis
REDIS_URL=redis://redis:6380/

# --- Puppeteer (浏览器服务) ---
PUPPETEER_WS_ENDPOINT=ws://browserless:3002

# =============================================================================
# 未配置项 (已全部注释)
# 如需启用,请删除行首的 "#" 并填入对应值
# =============================================================================

# --- 网络配置 ---
# PORT=1200
# LISTEN_INADDR_ANY=1
# REQUEST_RETRY=2
# REQUEST_TIMEOUT=3000
# NO_RANDOM_UA=

# --- 跨域设置 ---
# ALLOW_ORIGIN=*

# --- 缓存设置 (默认/内存) ---
# CACHE_EXPIRE=300
# CACHE_CONTENT_EXPIRE=3600
# MEMORY_MAX=256

# --- 代理配置 (Proxy) ---
# PROXY_URI=https://rsshub.ser.onecreeper.cn
# PROXY_AUTH=
# PROXY_URL_REGEX=.*

# --- 访问控制 (Access Control) ---
ACCESS_KEY=250250250c_RSSHUB

# --- 日志配置 ---
# DEBUG_INFO=true
# LOGGER_LEVEL=info
# SENTRY=

# --- 其他应用配置 ---
# DISALLOW_ROBOT=true
# ENABLE_CLUSTER=false
# TITLE_LENGTH_LIMIT=150
# OPENAI_TEMPERATURE=0.2

# --- OpenAI (ChatGPT) ---
# OPENAI_API_KEY=
# OPENAI_API_ENDPOINT=
# OPENAI_MODEL=


# =============================================================================
# 路由特定配置可以参考官方 [配置 | RSSHub](https://docs.rsshub.app/zh/deploy/config)
# =============================================================================

FreshRSS

mkdir data freshrss_data freshrss_extensions
vim docker-compose.yml
version: '3.8'

services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    ports:
      - "1244:80"
    # 左边是你想暴露的端口
    environment:
      - TZ=Asia/Shanghai
      - CRON_MIN=4,34
      - FRESHRSS_ENV=production
      # 核心配置:设置您的外部访问域名
      - BASE_URL=https://rss.ser.onecreeper.cn
      # 核心配置:信任反向代理。
      # 必须允许私有网段,以便 FreshRSS 正确读取 X-Forwarded-Proto: https 头
      - TRUSTED_PROXY=172.16.0.0/12 192.168.0.0/16 10.0.0.0/8 127.0.0.1
    volumes:
      # 将 FreshRSS 的数据映射到本地的 ./data/freshrss 目录
      - ./data/freshrss:/var/www/FreshRSS/data
      # 将 FreshRSS 的扩展映射到本地的 ./data/freshrss_extensions 目录
      - ./data/freshrss_extensions:/var/www/FreshRSS/extensions
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: freshrss-db
    restart: unless-stopped
    volumes:
      # 将 PostgreSQL 的数据映射到本地的 ./data/db 目录
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=freshrss
      - POSTGRES_USER=freshrss
      - POSTGRES_PASSWORD=freshrss_password # 建议修改此密码

RSS源

  1. pixiv可通过RSShub实现,需要配置refresh_token
  2. 每日英语新闻学习 ,利用现成的网站,news in levels ,每日按照分级提供新闻 ,地址 https://www.newsinlevels.com/feed

效果

没啥好说的,本博客的创造者
最后更新于 2026-07-22