3 min read

如何手搓一个自己的信息流Cloudflare,Miniflux,RssHub

如何手搓一个自己的信息流Cloudflare,Miniflux,RssHub

在遍地都是短视频的当下,文字信息流市场被蚕食殆尽。不过我还是坚信,文字是人类传承最主要的手段。同时,也非常尊敬还保留 rss 的网站。

又是 Cloudflare 这家公司真是业界良心。作为价值投资,乘科技股大跌之际继续加仓。

rsshub 把 telegram, thread 转换为 rss feed。推特已经不行了(马斯克接管后)官方文档

准备工作

  • cloudflared tunnel 用来代理各种服务。(我把它当做 nginx 用了)
  • 需要一台不在限制区域的服务器(do、linode、aws 等等)。
  • 移动端接受信息推荐 apple store 购买 reeder (仅限 iPhone)

通过 docker compose 安装 miniflux 和 rsshub


  • 部署 miniflux, 可以运行在本地(如 raspberrypi)或 cloud。看个人喜好
mkdir miniflux
cd miniflux
touch docker-compose.yaml

以下是 docker-compose.yaml 内容

services:
  db:
    image: postgres:alpine
    restart: always
    environment:
      - POSTGRES_DB=miniflux
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=miniflux123
      - PGDATA=/var/lib/postgresql/data/pgdata
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s
    volumes:
      - ./data:/var/lib/postgresql/data

  miniflux:
    image: miniflux/miniflux:latest
    restart: always
    ports:
      - "127.0.0.1:8080:8080"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - BASE_URL=https://miniflux.example.com/
      - DATABASE_URL=postgres://miniflux:miniflux123@db/miniflux?sslmode=disable
      - WORKER_POOL_SIZE=20
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=miniflux
      - ADMIN_PASSWORD=nopassword123  # miniflux 管理员密码
      

运行 miniflux

docker-compose pull
docker-compose up -d 

以上就是 miniflux 安装与运行。


  • 部署 rsshub,推荐运行在没有限制的 cloud 服务商
mkdir rsshub
cd rsshub
touch docker-compose.yaml
docker-compose.yaml 可以去 rsshub github 直接复制 https://github.com/DIYgod/RSSHub/blob/master/docker-compose.yml
services:
    rsshub:
        # two ways to enable puppeteer:
        # * comment out marked lines, then use this image instead: diygod/rsshub:chromium-bundled
        # * (consumes more disk space and memory) leave everything unchanged
        image: diygod/rsshub
        restart: always
        ports:
            - '1200:1200'
        environment:
            NODE_ENV: production
            CACHE_TYPE: redis
            REDIS_URL: 'redis://redis:6379/'
            PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'  # marked
        depends_on:
            - redis
            - browserless  # marked

    browserless:  # marked
        image: browserless/chrome  # marked
        restart: always  # marked
        ulimits:  # marked
          core:  # marked
            hard: 0  # marked
            soft: 0  # marked

    redis:
        image: redis:alpine
        restart: always
        volumes:
            - redis-data:/data

volumes:
    redis-data:

让 rsshub 跑起来

docker-compose pull
docker-compose up

演示:

已 telegram 为例,复制 rsshub 文档中 telegram channel 的链接

然后,将其粘贴到 miniflux 源的网址

这样就可以成功订阅一个 telegram channel 了。


最后,更多配置可以参考 miniflux 和 rsshub 的文档

https://miniflux.app/docs/index.html

https://docs.rsshub.app/