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
进阶一点的话题
- 因为有些feed反爬虫严重,所以我的rsshub和miniflux,都使用了一台动态ip做代理;至于为啥多了一个gost,因为miniflux本身不支持带密码的s5代理,所以用gost转成了一个不加密的本地s5代理给miniflux使用
- 少数派、微博的反爬严格,图片到阅读器里显示不了,分享个简单的方法,在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配置上的问题,可回帖讨论,一起优化。
最后,手工码字不易,走过路过别忘点个赞哈。