使用 Docker 搭建你自己的 RSS 服務(FreshRSS)

在算法推薦滿天飛的世界裏,定製獲取信息就顯得比較另類了,但是它可能是更高效的手段。

接下來我將演示三種常規的 RSS 服務的搭建方式,本篇是第一篇,FreshRSS。

如果你有閲讀過我之前寫的文章,那麼參考本篇文章將文章搭建起來,應該只需要3分鐘或者更少,如果你沒有看過,那麼可以點擊本文相關的文章標籤,閲讀過往的文章。

關於 FreshRSS

FreshRSS 是一款基於 PHP 編寫的 RSS 服務。相比較同是由 PHP 編寫、名氣更大的 TT-RSS ,FreshRSS 的因為持續耕耘 GitHub 開源社區,功能和迭代保持的更好。

我之前使用它的主要原因有:

  • 支持離線緩存,包括圖片離線訪問(需要使用 ImageProxyExtension 插件)。
  • 支持 Fever API,允許用户在客户端閲讀器上進行閲讀。
  • 支持插件,也方便用户編寫插件進行定製化使用。

如果你想了解更多,可以訪問 這裏 ,如果你只是想使用,那麼請繼續閲讀。

使用 Docker 和 Traefik 進行服務

在本文成文的時候,我發現官方社區在十幾天前也有人提交了如何使用 Traefik 搭建服務,不過,顯然我提供的方案更簡單一些, 關於這次提交

下面是我提供的服務應用配置,考慮到服務的可維護性,這裏我將數據庫和應用進行了拆分,如果你喜歡 bundle ,可以將兩個配置進行合併。

version: '3'
 
services:
 
  nginx:
    image: freshrss/freshrss:1.13.0
    restart: always
    container_name: freshrss
    environment:
      CRON_MIN: 17,47
    networks:
      - traefik
    labels:
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:rss.lab.com"
      - "traefik.frontend.entryPoints=http,https"
    volumes:
      - ./data:/var/www/FreshRSS/data
      - ./extensions:/var/www/FreshRSS/extensions
 
networks:
  traefik:
    external: true

使用 docker-compose up 將服務運行起來之後,我們繼續折騰數據庫,下面是數據庫配置。

version: '3'
 
services:
 
  mariadb:
    image: mariadb:10.3.8
    restart: always
    container_name: rss-db
    networks:
      - traefik
    environment:
      MYSQL_DATABASE: freshrss
      MYSQL_USER: freshrss
      MYSQL_PASSWORD: pass
      MYSQL_ROOT_PASSWORD: soulteary
    volumes:
      - ./data:/var/lib/mysql
    labels:
      - "traefik.enable=false"
 
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.8.2
    restart: always
    networks:
      - traefik
    environment:
      MYSQL_USER: ttrss
      MYSQL_PASSWORD: ttrss
      MYSQL_ROOT_PASSWORD: soulteary
      PMA_HOST: rss-db
    labels:
      - "traefik.frontend.rule=Host:rss-pma.lab.com"
      - "traefik.enable=true"
 
networks:
  traefik:
    external: true

同樣的,使用 docker-compose up 將服務運行起來,打開瀏覽器,訪問: rss.lab.com ,簡單配置之後,你就能夠擁有一個功能強大,界面友好的 RSS 訂閲服務了。

使用 Docker 搭建你自己的 RSS 服務(FreshRSS)
使用 Docker 搭建你自己的 RSS 服務(FreshRSS)

最後

之前寫文章總是考慮沒有閲讀基礎的同學,而忽略了一直訂閲、關注着我的同學,未來重複的內容,我將會和本文一樣,給予簡短的指引,不贅述基礎建設,只聊主題相關的核心部分。

雖然這個服務搭建完畢了,但是並不能很好的服務於我們,因為在當前的網絡大環境下,越來越多的網站“被迫封閉了起來”,不再支持 RSS 方式的訂閲模式,至於如何解決,請耐心等待這三篇文章結束後,我提供的方案吧。

— EOF