如何手搓一个自己的信息流Cloudflare,Miniflux,RssHub
在遍地都是短视频的当下,文字信息流市场被蚕食殆尽。不过我还是坚信,文字是人类传承最主要的手段。同时,也非常尊敬还保留 rss 的网站。
又是 Cloudflare 这家公司真是业界良心。作为价值投资,乘科技股大跌之际继续加仓。
rsshub 把 telegram, thread 转换为 rss feed。推特已经不行了(马斯克接管后)官方文档
准备工作
- cloudflared tunnel 用来代理各种服务。(我把它当做 nginx 用了)
- 需要一台不在限制区域的服务器(do、linode、aws 等等)。
- 移动端接受信息推荐 apple store 购买 reeder (仅限 iPhone)
通过 docker compose 安装 miniflux 和 rsshub
- 如何安装 cloudflared tunnel 可以参考 利用 Cloudflare Ghost RaspberryPi NAS 搭建个人博客 这篇。
- 部署 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 的文档