分享RSS使用经验(全docker自部署)

Miniflux - 小而美的 RSS 后端,我叫他“大后方”

version: '3.4'
services:
  miniflux:
    image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}
    container_name: miniflux
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - FETCH_YOUTUBE_WATCH_TIME=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=user  # 改成自己的登录信息
      - ADMIN_PASSWORD=pass   # 改成自己的登录信息
      - BASE_URL=https://rss.example.com # 改成自己的域名 
      - POLLING_FREQUENCY=10
      - POLLING_PARSING_ERROR_LIMIT=0
      - BATCH_SIZE=200
      - POLLING_SCHEDULER=entry_frequency
      - SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL=20
      - MEDIA_PROXY_MODE=all
      - MEDIA_PROXY_PRIVATE_KEY=mediakey # 固定一个值即可,日常用不到
      - DATABASE_MAX_CONNS=100
      - DATABASE_MIN_CONNS=10
      - WORKER_POOL_SIZE=200
      - HTTPS_PROXY=http://gost:1080  # 90%的人可以删除
      - HTTP_PROXY=http://gost:1080  # 90%的人可以删除
      - TZ=Asia/Shanghai
    restart: unless-stopped
    ports:
      - "8080:8080"
  db:
    image: postgres:15
    container_name: postgres
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=secret
    volumes:
      - /root/miniflux/root_miniflux-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s
    restart: unless-stopped

  gost:  # 以下整段,90%的人没需求,可删除
    image: gogost/gost
    container_name: gost
    restart: unless-stopped
    volumes:
      - /root/miniflux/:/etc/gost/
    expose:
      - "1080"

RSShub - 解决大部分订阅源的问题

version: '3'

services:
    rsshub:
        container_name: rsshub
        image: diygod/rsshub:chromium-bundled  # 建议用这个版本的,功能更全面
        restart: unless-stopped
        ports:
            - '1200:1200'
        environment:
            NODE_ENV: production
            CACHE_TYPE: redis
            REDIS_URL: 'redis://redis:6379/'
            CACHE_EXPIRE: 600
            CACHE_CONTENT_EXPIRE: 3600
            ALLOW_USER_HOTLINK_TEMPLATE: true
            PROXY_URI: 'socks5h://s5user:[email protected]:1080' # 90%的人用不到
        depends_on:
            - redis
    redis:
        image: redis:alpine
        restart: always
        volumes:
            - /root/rsshub:/data

Wechat2RSS - 顾名思义,不解释不宣传低调

version: '3'
services:
  wechat2rss:
    container_name: wechat2rss
    image: "ttttmr/wechat2rss:latest"
    environment:
      - [email protected] # 付款时备注的邮箱
      - LIC_CODE=xxxxxxxxxxxxxxxxxxxxxxxxx # 激活码
      - RSS_HOST=w2rss.example.com # 服务器地址
      - RSS_HTTPS=1
      - RSS_ENC_FEED_ID=1
      - RSS_TOKEN=xxxxxx   # 改成自己的
    volumes:
      - ./data:/wechat2rss # 数据持久化保存
    ports:
      - "127.0.0.1:8083:8080" # 监听端口映射,例如修改到8081端口,8081:8080
    deploy: # 自动重启策略
      restart_policy:
        condition: on-failure
        max_attempts: 3
        window: 10s

ReactFlux - Miniflux 三方Web前端,电脑阅读最佳体验

docker run -p 2000:2000 electh/reactflux

手机客户端

iOS:Reeder Classic/NetNewsWire
Android:Feedme

进阶一点的话题

  1. 因为有些feed反爬虫严重,所以我的rsshub和miniflux,都使用了一台动态ip做代理;至于为啥多了一个gost,因为miniflux本身不支持带密码的s5代理,所以用gost转成了一个不加密的本地s5代理给miniflux使用
  2. 少数派、微博的反爬严格,图片到阅读器里显示不了,分享个简单的方法,在feed链接后面加 ?image_hotlink_template=https://image.baidu.com/search/down?url=%24%7Bhref_ue%7D
    比如:https://rsshub.app/sspai/index?image_hotlink_template=https://image.baidu.com/search/down?url=%24%7Bhref_ue%7D

其他的想到再说吧,虽然Follow很火,但是很多我需要的功能还没有,比如“逆序阅读”等,所以主力还在Miniflux上。Docker配置上的问题,可回帖讨论,一起优化。

最后,手工码字不易,走过路过别忘点个赞哈。

74 个赞

开发调优, Lv1开发调优

我用freshrss和feedme,fastapi、playright做补充,没用过Miniflux ,不知道跟freshrss好用不

9 个赞

感谢分享大佬厉害啊

2 个赞

拉取时间可以几秒? 可以自己设置吗

1 个赞

看看用着freshrss,哪个好

1 个赞

POLLING_FREQUENCY

The interval in minutes that miniflux adds qualified feeds to the work queue.

Default is 60 minutes.

可以试试这个参数。

2 个赞

我认为 Miniflux 比较纯粹,小而美

1 个赞

感谢你的经验

1 个赞

fastapi、playright ,这两个都不是现成的工具吧?

1 个赞

顺道推荐下自己的miniflux-ai项目,添加AI摘要、翻译功能。欢迎点Star支持本项目

1 个赞

感谢佬友的分享,很有用

1 个赞

目前主力freshrss 但是公号和x好像不行,rsshub8解决这俩问题了?

1 个赞

这个很好,不过好像使用起来比较麻烦~~

1 个赞

少数派上的图片按照你说的加上
?image_hotlink_template=https://image.baidu.com/search/down?url=%24%7Bhref_ue%7D后依旧是403forbidden。请问需要根据自身环境配置吗?
我的完整订阅链接是http://rsshub:1200/sspai/index?image_hotlink_template=https://image.baidu.com/search/down?url=%24%7Bhref_ue%7D
miniflux和rsshub是通过docker内网连接的。
还有一点是,有什么比较方便的方法配置动态的IP代理吗?我的rsshub在国内,简单通过clash来代理出去的,但是因为是单个IP。有些网站会触发风控(即使我的RSSHUB内容缓存时间设置的是1小时),在Clash那里换一个节点就OK了,但是一天之后还是会触发风控,目前没有什么好的解决方案。

1 个赞

你参考下我rsshub的配置?

1 个赞

大佬,我用1pnael拉取的rsshub镜像搭建的rss怎么设置源的抓取频率呀

1 个赞

wechat2rss 是收费的?

1 个赞

对 收费 字数补丁

1 个赞

wewe-rss和 Wechat2RSS 这俩有啥区别,第二个更稳吗?

1 个赞