运维 | 降级TTRSS和数据库版本
缘由
我的 RSS 阅读器使用的是 Awesome TTRSS,订阅数量为 2686
,VPS 使用的是 甲骨文免费版
。最初部署的时候已经是 2 年多前了,最近一直出现打开不了的情况,查看了数据库的日志,里面经常会出现占用过高被杀死进程的提示(Docker 里面限制了 PostgreSQL 最高占用为 90%,超过这个占用会被关闭)。
由于启用了 watchtower
功能,会自动把镜像升级为最新版本,VPS 已经不堪重负了,只能先降级试试了。
本来想直接 dd 新系统的,但是由于甲骨文迷一样的回收政策,没敢这么做。数据库版本也要从 13 降回去,为了不出问题,就只备份 opml 文件,不备份数据库数据了。
降级
关闭相应的 docker 服务:
docker-compose down
docker-compose down
会删除容器,网络,卷,镜像等资源docker-compose stop
只会停止容器,这些资源仍然存在
修改
docker-compose.yml
配置,将TTRSS和数据库版本固定为旧版本wangqiru/ttrss:latest-2021-01-01
postgres:9.3-alpine
删除旧版数据库文件
- 我的位置是
/root/postgres/data
- 我的位置是
- 重新运行:
docker-compose up -d
Cloudflare Argo Tunnel(cloudflared) 来加速网站
参考文章末尾的教程来部署
- 按照
docker-compose
的功能来部署,失败了
- 按照
重新使用官方 deb 安装为服务来使用
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb && sudo cloudflared service install eyJhIjoiYTA0NjJlZGMyY2QyMjhjNDM3OWQxY2YzOTE5MWMwMDIiLCJ0IjoiZTc1
cloudflared 配置
- 网站本地端口为
8088
Public hostnames
中:Type
选择http
,URL
选择127.0.0.1:8088
- 网站本地端口为
- 访问
docker-compose
中配置的SELF_URL_PATH
网址即可访问
资源占用对比
在 26 日重新部署低版本的程序后,占用显著降低。
其他
docker-compose 配置
version: "3.7"
services:
service.rss:
image: wangqiru/ttrss:latest-2021-01-01
container_name: ttrss
ports:
- 8088:80
environment:
- SELF_URL_PATH=https://xxxx.seekdoor.me # please change to your own domain
- DB_PASS=ttrss # use the same password defined in `database.postgres`
- PUID=1000
- PGID=1000
# deploy:
# resources:
# limits:
# cpus: '0.80'
volumes:
- feed-icons:/var/www/feed-icons/
networks:
- public_access
- service_only
- database_only
stdin_open: true
tty: true
restart: always
# 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
# networks:
# - public_access
# - service_only
# 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
# networks:
# - service_only
# restart: always
database.postgres:
image: postgres:9.3-alpine
container_name: postgres
environment:
- POSTGRES_PASSWORD=ttrss # feel free to change the password
volumes:
- ~/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host
networks:
- database_only
restart: always
deploy:
resources:
limits:
cpus: '0.90'
# 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
volumes:
feed-icons:
networks:
public_access: # Provide the access for ttrss UI
service_only: # Provide the communication network between services only
internal: true
database_only: # Provide the communication between ttrss and database only
internal: true
参考教程
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。