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

docker compose 部署配置 Awesome TTRSS 教程

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

前言

博主是一个 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

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

相关文章

宝塔面板设置Typecho伪静态去掉index.php教程

宝塔面板设置Typecho伪静态去掉index.php教程

前言Typecho博客初始安装完成后,博客的任何内页面,地址栏都会有index.php(例如https://www.ioiox.com/index.php/archives/about.html)非常影响美观和网站结构,本文将详解在宝塔面板...

Apache设置Typecho伪静态去掉index.php教程

Apache设置Typecho伪静态去掉index.php教程

前言Typecho博客初始安装完成后,博客的任何内页面,地址栏都会有index.php(例如https://www.ioiox.com/index.php/archives/about.html)非常影响美观和网站结构,本文将详解在Apac...

OneDrive多网盘挂载程序CuteOne安装配置教程

OneDrive多网盘挂载程序CuteOne安装配置教程

前言本文将详细介绍OneDrive网盘程序CuteOne的安装流程CuteOne是一款OneDrive多网盘挂载程序。多盘负载、在线查看、在线上传、下载、多盘同步、主从同步、在线分享、文件夹权限管理、 会员功能、等级制度、付费查看、密码查看...

CentOS 7 从Python2.7.5升级到Python2.7.16版本教程

CentOS 7 从Python2.7.5升级到Python2.7.16版本教程

前言最近一直忙于工作,游戏,摄影,摄像,vlog等等.几乎没有时间来维护博客.今天特意抽出一点时间来整理和维护一下阿里云的几个服务,顺便更新了云服务器的一些漏洞,其中大部分的漏洞通过yum update来更新一下版本即可修复,唯独RHSA-...

CentOS 7 安装 docker compose 教程

CentOS 7 安装 docker compose 教程

前言正在折腾测试些docker容器,用到docker compose功能,记录一下安装流程.CentOS 7 上Docker的安装方法参考:CentOS 7 安装Docker教程三种安装方法官方安装 - 速度慢,有可能被DNS污染导致失败....

CentOS 7 挂载腾讯云COS对象存储教程

CentOS 7 挂载腾讯云COS对象存储教程

前言本文将详解使用腾讯云cosfs工具将COS对象存储的存储桶挂载到CentOS 7服务器的教程.其他平台及常见问题请参考官方说明:腾讯云COSFS 工具COSFS 工具类常见问题安装COSFS工具获取源码git clone&nb...

发表评论

访客

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