使用 Docker 部署 FreshRSS 自建专属 RSS 服务

使用 Docker 部署 FreshRSS 自建专属 RSS 服务

https://cloud.tencent.com/developer/article/1964176

发布于 2022-03-26 09:22:30
5.4K1
举报
文章被收录于专栏:网络收集

安装

本文提到的所有服务均为 Docker 安装,所以在开始 FreshRSS 的安装之前先需先配置好 Docker。所使用 VPS 的系统为 Ubuntu 20.04,理论上 Debian 系的所用命令通用,Red Hat 系的请自行替换部分安装命令。

参考 官方文档 安装 Docker:

代码语言:javascript
复制
# 使用官方一键安装脚本
sudo curl -fsSL https://get.docker.com | sh

# 如果是非 Root 账户,将当前账户添加到 "docker" 组
sudo usermod -aG docker <your-user>

随后安装 Docker 三剑客之一——Docker Compose,有它可以方便处理存在依赖关系的服务。即便没有依赖,将长长的 bash 命令换成 yaml 文件的格式传入也舒服多了,不是吗?

代码语言:javascript
复制
# 从 GitHub 下载到本地相应目录
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予 Docker Compose 目录相应权限
sudo chmod +x /usr/local/bin/docker-compose

第一条代码中的 1.28.2 可以更换为任何你希望获取的 版本

FreshRSS 基础服务

除了 FreshRSS 本身,还需要一个数据库才能让它跑起来。官方示例中给出了 MySQL/MarriaDB/PostgreSQL 三种方案,这里只以 PostgreSQL 举例。

创建一个新目录如 ~/freshrss 并进入该位置,新建 docker-compose.yml,这就是 Docker Compose 的默认配置文件。

代码语言:javascript
复制
# 创建 FreshRSS 目录并进入
mkdir ~/freshrss && cd ~/freshrss

# 新建 Docker Compose 配置文件
touch docker-compose.yml

# 编辑配置文件,反正我习惯用 Vim
vim docker-compose.yml
代码语言:javascript
复制
# ~/freshrss/docker-compose.yml

version: "3"

services:
  freshrss-db:
    image: postgres:latest
    container_name: freshrss-db
    hostname: freshrss-db
    restart: unless-stopped
    volumes:
      - freshrss-db:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: freshrss
      POSTGRES_PASSWORD: freshrss
      POSTGRES_DB: freshrss

  freshrss-app:
    image: freshrss/freshrss:latest
    container_name: freshrss-app
    hostname: freshrss-app
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - freshrss-db
    volumes:
      - ./data:/var/www/FreshRSS/data
      - ./extensions:/var/www/FreshRSS/extensions
    environment:
      CRON_MIN: '*/45'
      TZ: Asia/Shanghai

volumes:
  freshrss-db:

配置文件几乎和 模板 一致,只需要注意几点:

  • 14~16 行是数据库配置,请自行修改、避免使用默认配置
  • 24 行是宿主机端口映射到容器内端口,由于使用 http 通信请勿修改冒号后的 80 端口,冒号前的 8080 可以更改为任意空闲的端口
  • 31 行是 RSS 刷新周期,单位为分钟,*/45 表示每 45 分钟刷新一次
  • 32 行是时区

:wq 保存退出后,可先前台执行观察输出,若确实无误后便可置于后台持续运行。

代码语言:javascript
复制
# 先前台执行观察输出
docker-compose up

# 确认无误后后台持续运行
docker-compose up -d