FreshRSS 平台搭建

RSS 是最为简洁直接的信息获取手段, 可以防止各种低质量信息的轰炸. 在 即刻APP 陨落、Feedly 等封禁后, 博主开始了自搭建 RSS 平台的道路.

博主选择 FreshRSS 平台, 大家也可选择 TTRSS, 由于 Reeder 5 废弃 fever API 后, 因此 FreshRSS 较好.

安装 Docker

博主所用 VPS 为 Ubuntu 18.04 系统, 如下命令适用该系统.

# 使用官方一键安装脚本
sudo curl -fsSL https://get.docker.com | sh

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

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

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

FreshRSS

安装

# 创建 FreshRSS 目录并进入
mkdir ~/freshrss && cd ~/freshrss

# 编辑文件
vim docker-compose.yml

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:

注:

  • freshrss-dbenvironment 中用户密码等, 建议用户根据自身配置进行设定
  • /45: 代表每 45 分钟同步一次
# 先前台执行观察输出
docker-compose up

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

# 手动同步
docker exec -it freshrss-app su www-data -s /bin/sh -c 'php /var/www/FreshRSS/app/actualize_script.php'

网站反向代理

博主根据参考资料发现适用 Docker 版会出现无法获取对应证书的情况, 因此采用外部配置.

安装过程参考官方文档. Caddy 可自行申请 https 证书用于保护使用者的信息安全.

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

cat > /etc/caddy/Caddyfile <<EOF
freshrss.example.net {
  tls your_email@example.net
  reverse_proxy 127.0.0.1:8080
}
EOF

注:

  • freshrss.example.net: 替换为你的域名
  • your_email@example.net: 替换为你的邮箱
  • 127.0.0.1:8080: 由于上方 dockerfreshrss 的端口映射为宿主机的 8080 端口, 采用该配置.
# 开机自启
systemctl enable caddy
# 开启服务
service caddy start
# 停止服务
service caddy stop
# 服务状态
service caddy status

配置

  1. 通过 https://域名服务器IP:8080 访问服务页面;(注: 需要注意服务器是否开启对应端口访问限制)
  2. 数据库配置时
    1. 采用用户密码与 DockerFile 配置相同;
    2. 对于 数据库IP, 利用 docker inspect freshrss-db 找到 IPAddress 即为该位置填写结果;
  3. 完成配置

博主通常采用 API 进行管理, 配置步骤为 a. 用户账号-API 管理-API 密码 页面配置同步密码 b. 认证 页面勾选 允许 API 访问 (用于手机应用)

配置 Docker 代理

参考 官方文档 进行配置:

注意: 采用 172.18.0.1docker inspect freshrss-db 获得的网关地址 Gateway. 如果存在多个 docker 服务可能存在不在一个子网的情况, 无法访问宿主机, 参考官方建议 可利用 host.docker.internal 代替.

mkdir -p ~/.docker
cat > ~/.docker/config.json <<EOF
{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://172.18.0.1:3128",
     "httpsProxy": "http://172.18.0.1:3128",
     "noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
   }
 }
}
EOF

参考资料


FreshRSS 平台搭建
https://www.windism.cn/4220000640.html
作者
windism
发布于
2021年8月10日
许可协议