当前位置:首页 > 群晖专栏 > 运维部署 > 正文内容

docker compose 部署配置 Awesome TTRSS 教程

admin5年前 (2020-02-08)运维部署182

前言

博主是一个 RSS 重度使用者,早已不记得是何时开始,也许大概是 Google Reader 那个时代,至今已经十几年,保持着每天睡前阅读的习惯.自 Google Reader 关闭服务后,又转移至Feedly,使用了几年觉得功能和网络都体验不佳.于是最终选择了自建RSS服务.


现如今是一个互联网信息爆炸的时代,网络上的各类信息,文章,资源,媒体其真实度,质量参差不齐.知识获取渠道充斥着各种软文,广告,鸡汤等无用的垃圾信息.使用RSS来管理和订阅适合自己的内容,并利用碎片时间来学习储备知识.依旧是目前最高效的解决方案.

Tiny Tiny RSS 是一款基于 PHP 的免费开源 RSS 聚合阅读器。 Awesome TTRSS 旨在提供一个 「一站式容器化」 的 Tiny Tiny RSS 解决方案,通过提供简易的部署方式以及一些额外插件,以提升用户体验。


部署

使用docker compose部署,其中包含 4 个镜像:


配置 docker-compose.yml

  • 建议在root目录下创建ttrss文件夹,以存放docker-compsoe.yml配置文件和postgres数据库目录.

  • 下载 docker-compose.yml 至ttrss目录

  • 更改 docker-compose.yml 中第7和23行两处的数据库密码

  • 更改 docker-compose.yml 中第18行最终访问地址

  • 修改 docker-compose.yml 中第9行的挂载目录,由~/postgres改为./postgres,以挂载至ttrss目录下.


注意第18行此处的地址一定必须为最终你希望使用的协议,域名及端口.例如设置为 https://rss.ioiox.com 那么使用 http 协议是无法访问的,必须配置 Nginx 反向代理强制使用 https 协议.反之如果设置为 http://rss.ioiox.com 即使配置过 Nginx 反向代理也无法使用 https 访问.

docker-compose.yml 参考示例:

version: "3"
services:
  database.postgres:
    image: sameersbn/postgresql:latest
#    container_name: postgres
    environment:
      - PG_PASSWORD=ttrss # please change the password
    volumes:
      - ~/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host
    restart: always

  service.rss:
    image: wangqiru/ttrss:latest
#    container_name: ttrss
    ports:
      - 181:80
    environment:
      - SELF_URL_PATH=http://localhost:181/ # please change to your own domain
      - DB_HOST=database.postgres
      - DB_PORT=5432
      - DB_NAME=ttrss
      - DB_USER=postgres
      - DB_PASS=ttrss # please change the password
      - ENABLE_PLUGINS=auth_internal,fever # auth_internal is required. Plugins enabled here will be enabled for all users as system plugins
    stdin_open: true
    tty: true
    restart: always
    command: sh -c 'sh /wait-for.sh $$DB_HOST:$$DB_PORT -- php /configure-db.php && exec s6-svscan /etc/s6/'

  service.mercury: # set Mercury Parser API endpoint to `service.mercury:3000` on TTRSS plugin setting page
    image: wangqiru/mercury-parser-api:latest
#    container_name: mercury
    expose:
      - 3000
    restart: always

  service.opencc: # set OpenCC API endpoint to `service.opencc:3000` on TTRSS plugin setting page
    image: wangqiru/opencc-api-server:latest
#    container_name: opencc
    environment:
      - NODE_ENV=production
    expose:
      - 3000
    restart: always

  # utility.watchtower:
  ##   container_name: watchtower
  #   image: containrrr/watchtower:latest
  #   volumes:
  #     - /var/run/docker.sock:/var/run/docker.sock
  #   environment:
  #     - WATCHTOWER_CLEANUP=true
  #     - WATCHTOWER_POLL_INTERVAL=86400
  #   restart: always

配置 HTTPS 协议

TTRSS 容器自身不负责使用 HTTPS 加密通信,我们需要使用 Nginx 来反向代理.

参照以下 Nginx 样本配置,并修改所有 rss.ioiox.com 为你的域名,以及证书路径.
upstream ttrssdev {
    server 127.0.0.1:181;
}

server {
    listen 80;
    server_name  rss.ioiox.com;
    return 301 https://rss.ioiox.com$request_uri;
}

server {
    listen 443 ssl;
    gzip on;
    server_name  rss.ioiox.com;

    ssl_certificate /usr/local/nginx/conf/ssl/ioiox.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/ioiox.com.key;

    # access_log /var/log/nginx/ttrssdev_access.log combined;
    # error_log  /var/log/nginx/ttrssdev_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://ttrssdev;

        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }
}

启动 docker compose

执行以下命令启动 docker compose

docker-compose up -d
默认管理员账户和密码为 admin password 请尽快修改.

修改配置

如果docker-compose.yml配置错误,按照以下步骤修改配置再次启动.

docker-compose down
# 关闭 Docker 容器
# 修改 docker-compose.yml 配置文件
docker-compose up -d
# 再次启动 docker compose

更新

手动更新

通过以下命令进行手动更新:

docker-compose down
# 关闭 Docker 容器
docker pull wangqiru/ttrss:latest
docker pull wangqiru/mercury-parser-api:latest
docker pull wangqiru/opencc-api-server:latest
docker pull sameersbn/postgresql:latest
# 更新镜像
docker-compose up -d
# 重新启动 Docker 容器

自动更新

上文docker-compose.yml中包含了Watchtower,它会自动拉取并更新您所有的服务容器 (包括当前系统上运行的非 Awesome-TTRSS 服务的容器).该服务默认关闭,启用前请确认它将不会影响您其他的服务容器.


也可以设置 watchtower 忽略您的其他容器:
service.mercury:
  image: wangqiru/mercury-parser-api:latest
#  container_name: mercury
  expose:
    - 3000
  restart: always
    # ⬇️ 这将使 Watchtower 跳过对 mercury-parser-api 的更新检测
  labels:
      - com.centurylinklabs.watchtower.enable=false

迁移

早前曾按照常规的的迁移方法备份docker-compose.ymlpostgres数据库目录至新服务器,域名及反向代理也配置相同,最终报数据库错误,没有成功.所以还是推荐使用备份还原数据库的方式来进行迁移最为妥当.为避免意外导致docker无法启动,还推荐使用crontab定时导出数据库进行备份.

备份数据库

在原环境 docker 运行时,执行以下命令导出数据库到当前目录,拷贝导出的expoet.sql到新服务器.

docker exec postgres pg_dumpall -c -U postgres > export.sql

恢复数据库

按照上文全新部署并启动 docker 后,执行以下命令导入数据库.

cat export.sql | docker exec -i postgres psql -U postgres

定时备份

推荐使用crontab来配置定时备份任务.

crontab -e
# 添加以下任务,每天凌晨1点备份数据库到 ttrss 目录.
0 1 * * * cd /root/ttrss && docker exec postgres pg_dumpall -c -U postgres > export.sql

插件

Mercury 全文获取

Mercury 全文内容提取插件,需要搭配Mercury Parser API服务器使用,上文docker-compose.yml中已经包含了HenryQW/mercury-parser-api服务器.我们仅需开启插件,并填写 API 地址即可使用.

开启插件

偏好设置 - 插件 - 在用户插件区域找到mercury_fulltext勾选并启用.

填写 API 地址

信息源 - Mercury Fulltext settings - 如图填写保存即可

service.mercury:3000

设置信息源全文获取

编辑需要全文获取的信息源,插件中勾选Get fulltext via Mercury Parser保存即可.


设置完成后,当前已获取的RSS订阅无论已读还是未读均无法获取全文,当服务器下次获取新的订阅时才会获取全文.

Fever API


提供 Fever API 支持, iOS 及 macOS 用户推荐使用优秀的 RSS 客户端 Reeder 4 来阅读订阅.

偏好设置
勾选启用API - 保存设置

偏好设置 - Fever Emulation
自行创建客户端登陆的专用密码

使用 Reeder 4 登陆

  • 添加账号类型为Fever

  • 地址为 https://你的rss域名.com/plugins/fever

  • 用户名为你的登陆ID

  • 密码为Fever Emulation中创建的专用密码


结语

常规安装,配置,备份,迁移及常用插件已经部署完毕.其他更多插件,主题,技术与帮助请参考官方文档或至 Github 提交 issues.


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





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

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

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

标签: 运维部署
分享给朋友:

相关文章

宝塔面板一键安装LNMP和LAMP环境教程

宝塔面板一键安装LNMP和LAMP环境教程

前言本文将详解如何在Linux服务器上通过宝塔面板来快速安装配置LNMP或LAMP环境.LNMP和LAMP是服务器建站环境的简称,LNMP即Linux/Nginx/MySQL/PHP,而LAMP即Linux/Apache/MySQL/PHP...

OLAINDEX另一个OneDrive目录索引应用部署教程

OLAINDEX另一个OneDrive目录索引应用部署教程

前言由于OneIndex非常受欢迎,一些优秀的开发者受OneIndex启发,开发出各种OneDrive目录索引应用,例如OLAINDEX,PyOne,CuteOne等等.其功能和主题非常丰富,本文将介绍使用OLAINDEX来部署OneDri...

CentOS 7 配置Python3环境教程

CentOS 7 配置Python3环境教程

前言本文将介绍CentOS7下配置Python3环境教程配置流程检查Python版本pythonCentOS7自带Python2.7安装依赖包yum -y groupinstall "Developm...

OneDrive多网盘文件浏览系统PyOne安装配置教程

OneDrive多网盘文件浏览系统PyOne安装配置教程

前言本文将详细介绍OneDrive多网盘文件浏览系统PyOne的安装流程PyOne是一款基于Python-Flask的onedrive文件本地化浏览系统,使用MongoDB储存文件列表,使用redis缓存数据,支持绑定多个网盘,极大的提高使...

Linux 服务器 docker 部署 AWTRIX 2.0 Server

Linux 服务器 docker 部署 AWTRIX 2.0 Server

前言之前帮一位朋友部署油管粉丝数显示牌的服务端.由于特殊需求,需要把AWTRIX的服务器端部署到 VPS 服务器上.本文将介绍如何在 VPS 服务器上使用 docker 部署 AWTRIX 2.0 Server 服务器端.同时推荐好友的 Y...

docker compose 部署迁移 Chevereto 图床程序教程

docker compose 部署迁移 Chevereto 图床程序教程

前言Chevereto 是目前最流行的图床之一.其颜值高,功能多,扩展性强,安装方便并提供了免费和付费版本满足了各种需求.由于近期沉迷于 docker 环境,于是决定尝试使用 docker compose 安装部署,并迁移现有的图...

发表评论

访客

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