docker compose 部署配置 Awesome TTRSS 教程
source link: https://www.ioiox.com/archives/81.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
docker compose 部署配置 Awesome TTRSS 教程
博主是一个 RSS 重度使用者,早已不记得是何时开始,也许大概是 Google Reader 那个时代,至今已经十几年,保持着每天睡前阅读的习惯.自 Google Reader 关闭服务后,又转移至Feedly
,使用了几年觉得功能和网络都体验不佳.于是最终选择了自建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
目录下.
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 来反向代理.
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
如果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 服务的容器).该服务默认关闭
,启用前请确认它将不会影响您其他的服务容器.
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.yml
和postgres数据库目录
至新服务器,域名及反向代理也配置相同,最终报数据库错误
,没有成功
.所以还是推荐使用备份还原数据库
的方式来进行迁移最为妥当.为避免意外导致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
保存即可.
Fever API
偏好设置
勾选启用API - 保存设置
偏好设置 - Fever Emulation
自行创建客户端登陆的专用密码
使用 Reeder 4 登陆
- 添加账号类型为
Fever
- 地址为
https://你的rss域名.com/plugins/fever
- 用户名为你的登陆ID
- 密码为
Fever Emulation
中创建的专用密码
常规安装,配置,备份,迁移及常用插件已经部署完毕.其他更多插件,主题,技术与帮助请参考官方文档或至 Github 提交 issues.
本站提供免费和付费的技术支持.你可以通过留言,邮件,TG群的方式来技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK