当前位置:首页 > 群晖专栏 > 技术教程 > 正文内容

新手教程 Nginx + TTRSS + RSSHub 整合 docker 容器化快速一键部署方案

admin3年前 (2021-05-25)技术教程549


前言

rssforever.com 为网友提供免费的 RSS 和 RSSHub 服务已经一年有余,由于服务器压力及个人精力有限等原因已停止提供 RSS 服务.鉴于很多新手用户技术有限,特将 nginx , ttrss , rsshub 三个项目整合到 docker compose 中,实现一键部署使用.


本文部署流程非常简单,仅需 3 步,但还是建议新手用户耐心看完在进行操作.

特点

  1. 本项目针对新手用户,提供整合配置,无需繁琐的设置,即使是新手用户最快也只需要几步操作,几分钟即可部署使用.

  2. 使用 docker compose 编排配置,所有命令,配置及环境变量集中管理,方便维护和迁移.

  3. 更换服务器也仅需打包备份一个文件夹,迁移解压后一条命令即可恢复使用.

环境需求

  • 至少 1 核 1G 境外 VPS 服务器 ( 国内服务器由于网络问题,不推荐使用. )

  • 拥有自己的域名 ( 自行申请泛域名证书可使用 HTTPS 部署 )

  • 服务器未占用 80/443 端口

  • 服务器已安装 docker 和 docker compose 环境 ( 未安装可参考下文简易安装指南 )




更新

2021-06-18 更新一键安装脚本.

wget https://raw.githubusercontent.com/stilleshan/rssforever/main/install.sh && chmod +x install.sh && ./install.sh

一键安装脚本

一键安装脚本支持以下四种模式,请根据自身情况选择.

  1. nginx + ttrss + rsshub + watchtoer + acme 自动申请和续签证书并开启 HTTPS 模式

  2. nginx + ttrss + rsshub + watchtoer + 无证书 HTTP 模式

  3. nginx + ttrss + acme 自动申请和续签证书并开启 HTTPS 模式

  4. nginx + ttrss + 无证书 HTTP 模式

前期准备

本脚本适用于ttrssrsshub域名使用同一根域名,例如rss.rssforever.comrsshub.rssforever.com将自动申请*.rssforever.com泛域名证书.且脚本仅适用于首次安装.请提前将以上域名解析指向服务器.同时参考 这篇文章 中的 准备 DNS API 章节来获取域名服务商 API 以便脚本申请证书使用.

执行脚本

wget https://raw.githubusercontent.com/stilleshan/rssforever/main/install.sh && chmod +x install.sh && ./install.sh

定时更新证书

证书每月1日自动更新,请执行以下命令来定时每月重启nginx服务刷新证书.也可每月手动执行docker-compose restart来重启服务.

crontab -e
# 添加以下计划任务
0 0 2 * * docker restart rssforever_nginx_1
# 为避免时区问题,将在每月 2 号 0 点执行

手动部署


docker 及 docker compose 必须提前安装到服务器中,相关教程网上很多,也可逐一执行以下 6 条命令安装启动:
# 安装 dockercurl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl start docker
sudo systemctl enable docker# 安装 docker composecurl -L https://github.com/docker/compose/releases/download/1.29.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

安装完成并检查

docker -v
docker-compose -v


配置域名解析

分别为RSSRSSHub两个站点配置两个二级域名,例如rss.yourdomain.comrsshub.yourdomain.com.并设置A记录或CNAME到服务器.

HTTP 部署

拉取代码

git clone https://github.com/stilleshan/rssforever.git
# 拉取代码
cd rssforever
# 进入目录,注意不要修改目录名,否则会导致 watchtower 无法监控容器自动更新镜像.

配置 .env 文件

修改.env文件中RSSRSSHub的域名以及数据库密码

RSS_DOMAIN=rss.yourdomain.com
RSSHUB_DOMAIN=rsshub.yourdomain.com
POSTGRES_PASSWORD=rssforever.com

启动

docker-compose up -d
# 再次注意需要在 rssforever 目录下执行

完成

访问 http://rss.yourdomain.com使用adminpassword登陆使用,请及时修改密码.
访问 http://rsshub.yourdomain.com并参考官方文档使用.

HTTPS 部署

拉取代码

git clone https://github.com/stilleshan/rssforever.git
# 拉取代码
cd rssforever
# 进入目录,注意不要修改目录名,否则会导致 watchtower 无法监控自动更新容器.

配置 .env 文件

修改.env文件中RSSRSSHub的域名以及数据库密码

RSS_DOMAIN=rss.yourdomain.com
RSSHUB_DOMAIN=rsshub.yourdomain.com
POSTGRES_PASSWORD=rssforever.com

上传泛域名证书和密钥文件至nginx/ssl目录下.
并以yourdomain.com.cer形式命名,证书后缀cer或者crt等均不影响使用.
修改.env文件中域名证书和密钥文件名
修改.env文件中PROTOCOL=https
具体参考如下:

PROTOCOL=https
RSS_DOAMIN_CERT=yourdomain.com.cer
RSS_DOMAIN_KEY=yourdomain.com.key
RSSHUB_DOAMIN_CERT=yourdomain.com.cer
RSSHUB_DOMAIN_KEY=yourdomain.com.key

注意:如果使用单域名证书,请分别将两个域名证书上传至nginx/ssl中,分别修改.env文件中 RSS 和 RSSHub 域名证书和密钥文件名.

# 单域名参考配置
RSS_DOAMIN_CERT=rss.yourdomain.com.cer
RSS_DOMAIN_KEY=rss.yourdomain.com.key
RSSHUB_DOAMIN_CERT=rsshub.yourdomain.com.cer
RSSHUB_DOMAIN_KEY=rsshub.yourdomain.com.key

启动

docker-compose up -d
# 再次注意需要在 rssforever 目录下执行

完成

访问 https://rss.yourdomain.com使用adminpassword登陆使用,请及时修改密码.
访问 https://rsshub.yourdomain.com并参考官方文档使用.


进阶

强制跳转 HTTPS

2021-05-28 新增功能:
.env配置PROTOCOL=https时,将自动配置return 301强制跳转至HTTPS协议.

证书更新

本项目目前并未配置自动更新证书的功能,今后视情况加入其中.
泛域名有效期三个月,请自行续签后覆盖原有证书,执行docker-compose down停止服务,并在次执行docker-compose up -d启动即可.

高级配置

TTRSS 和 RSSHub 可以通过修改docker-compose.yml设置环境变量来配置高级功能,详情请参考本文末尾项目官方文档进行修改.
值得注意的是本项目的docker-compose.yml定制化过多,请慎重修改.
通常来说修改volumesenvironment参数来挂载目录,设置一些高级配置并不会对本服务有影响.如诺出现问题请提交issue.

备份恢复

备份

本项目采用 docker compose 部署,所有配置及数据都在rssforever目录中,方便备份和迁移.
rss目录会在项目启动后自动生成,存放rss的数据库,不可删除.( 除非希望重新部署 )
rsshub目录会在项目启动后自动生成,此目录为缓存数据,迁移时可以删除以免占用过大空间.
其他所有文件及目录,如不清楚请不要随意修改和删除,否则会导致服务无法启动.

恢复

将域名A记录重新指向新服务器,将备份的rssforever目录解压进入启动即可.

cd rssforever
# 进入目录
docker-compose up -d
# 启动

初始化

如果误操作修改了相关参数导致无法使用,请备份rss目录后,删除整个rssforever目录.重新按照上文git clone拉取代码,修改.env文件,在将rss移动至rssforever下,执行docker-compose up -d重新部署.


结语

感谢

感谢以下大神提供的项目:

链接

群晖专栏 

 

本站提供免费和付费的技术支持.你可以通过留言,邮件,QQ的方式来进行技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面


扫描二维码推送至手机访问。

版权声明:本文由梦魁网络资源站发布,如需转载请注明出处。

本文链接:https://family.monkui.com:39/?id=126

标签: 技术教程
分享给朋友:

相关文章

了解 frp 的一些通用功能

了解 frp 的一些通用功能

前言日常使用中除了常规的HTTP/HTTPS代理以外,SOCKS5代理也是有一定的使用需求,例如通过SOCKS5代理可以方便的 SSH 登陆国外网络环境不好的服务器. 而goproxy是一款轻量级,功能强大,高性能的代理软件,不仅可以同时部...

详解外网访问内网-DDNS和内网穿透的选择

详解外网访问内网-DDNS和内网穿透的选择

前言    本文将详解公网IP,DDNS,内网穿透的基础原理,并根据目前互联网的技术趋势给出相应的解决方案,让大家能够使用更开放的网络环境.外网访问内网的需求    随着互联网的成熟,家庭宽带的提速,大家对外网访问家庭内网电脑,监控,服务器...

TinyPNG批量压缩图片Python脚本使用教程

TinyPNG批量压缩图片Python脚本使用教程

前言TinyPNG是一个免费的在线批量压缩图片服务,但Web端有单次20张和单个文件5M的限制.同时TinyPNG官方提供了API,API限制每月500张,完全满足个人使用.本文将介绍使用Python脚本来批量压缩图片.推荐使用场景大部分博...

配置 Nginx 和 frps 共存 80/443 端口及泛域名支持教程

配置 Nginx 和 frps 共存 80/443 端口及泛域名支持教程

前言常规情况下frps服务器端会占用80和443端口,为内网设备提供穿透,实现用户可以使用域名无端口访问内网设备.而在已经部署nginx的服务器上,由于nginx已经占用80和443端口,frps的HTTP和HTTPS需另外选择端口,可以通...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。