使用Docker部署Miniflux RSS Reader
RSS閱讀器原本使用FreshRSS搭配Fluent-Reader,使用一陣子發現FreshRSS對RSS Feed很嚴格(相容性很差),常常遇到有些RSS怎麼加都加不進去,或是RSS突然掛掉抓不到。再者因為是用別人的主機,主機出問題或不維護更新也很麻煩。
看過其他線上RSS閱讀器,從安裝、設定、閱讀介面等各方面考量,改用Miniflux應該是最佳選擇,而且使用Docker部署Miniflux是最簡單的方式。
前置作業
- 安裝Docker環境:Docker學習筆記(二) — 安裝Docker
- 本機對外連線使用Cloudflare Tunnel:使用Cloudflare Tunnel取代直接接觸公網
- 開啟Google第三方登入:[教學] Google OAuth 2.0申請與使用指南
- Miniflux Installation with Docker
- Miniflux Configuration Parameters
安裝設定
建立一個資料夾,到該資料夾建立一個檔案名稱為docker-compose.yml,內容如下:
services:
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
restart: unless-stopped
ports:
- "8888:8080"
depends_on:
- db
environment:
- DATABASE_URL=postgres://admin:secret@db/miniflux?sslmode=disable
- HTTP_CLIENT_USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 #加入User Agent避免被網站阻擋
- RUN_MIGRATIONS=1
- BASE_URL=https://your-domain.com #設定網址
- TZ=Asia/Taipei #設定時區
- OAUTH2_PROVIDER=google #開啟Google第三方登入
- OAUTH2_CLIENT_ID=YOUR_CLIENT_ID #輸入Google OAUTH2的用戶端編號
- OAUTH2_CLIENT_SECRET=YOUR_CLIENT_SECRET #輸入Google OAUTH2的用戶端密鑰
- OAUTH2_REDIRECT_URL=https://your-domain.com/oauth2/google/callback #輸入Google OAUTH2已授權的重新導向URI
tunnel:
image: cloudflare/cloudflared:latest
container_name: cloudflared-tunnel
restart: unless-stopped
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=YOUR_TOKEN #輸入Cloudflare Tunnel的TOKEN
db:
image: postgres:16 #不建議用最新版本,怕以後遇到相容性問題無法啟動
container_name: postgresql
restart: unless-stopped
environment:
- TZ=Asia/Taipei
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=secret
- POSTGRES_DB=miniflux
volumes:
- miniflux-db:/var/lib/postgresql/data
volumes:
miniflux-db:
命令列輸入:
docker-compose up -d
開始自動部署,完成後啟動服務。
建立管理員帳號:
docker-compose exec miniflux /usr/bin/miniflux -create-admin
瀏覽器輸入http://127.0.0.1:8888或網址,即可開啟Miniflux網頁。
閱讀器設定
建議優先更改主題CSS:
https://github.com/rootknight/Miniflux-Theme-Reeder
因為試過Android第三方軟體,效果都不滿意,所以維持電腦用網頁,手機用PWA瀏覽。Miniflux官網也有提供免費試用15天(Miniflux Hosting),可體驗一下是否合乎需求。
如果某個網站RSS Feed確認是有問題的,或是有保護機制的(例如阻擋機器人),可以使用Feedburner燒一個RSS Feed給Miniflux使用。
I recently found out that feedburner still exists.
You can go to feedburner.google.com (Google account needed) and add “problematic” feeds, i.e. feeds behind Cloudflare.
Feedburner then acts like a proxy that strips off CF’s bot protection stuff.
版本更新
開啟命令列到docker-compose.yml資料夾輸入命令:
docker-compose pull
docker-compose down
docker-compose up -d
參考文章: