前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)

使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)

作者头像
soulteary
发布2020-02-20 13:50:25
6240
发布2020-02-20 13:50:25
举报

本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2020年02月02日 统计字数: 4727字 阅读时间: 10分钟阅读 本文链接: https://soulteary.com/2020/02/02/build-your-own-miniflux-rss-service-with-docker-and-traefik-v2.html


使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)

之前提过,接下来要针对去年的老文章,聊聊如何升级老应用。本篇将以 RSS 服务为例,简单聊聊如何操作。

写在前面

去年写过三篇使用 Docker 搭建 RSS 服务的文章,适逢升级 Traefik ,暂以下面搭建 RSS 服务文章的第一篇为例,聊聊在 2020 年初,如何升级这类应用/服务:

  • 使用 Docker 搭建你自己的 RSS 服务(Miniflux):https://soulteary.com/2019/01/22/build-your-own-rss-service-with-docker-miniflux.html
  • 使用 Docker 搭建你自己的 RSS 服务(stringer):https://soulteary.com/2019/01/06/build-your-own-rss-service-with-docker-stringer.html
  • 使用 Docker 搭建你自己的 RSS 服务(FreshRSS):https://soulteary.com/2019/01/05/build-your-own-rss-service-with-docker-freshrss.html

如果你还不太了解 Traefik,可以参考 《Traefik 2 使用指南,愉悦的开发体验 》、配置基于Traefik v2的 Web 服务器 先行了解掌握 Traefik v2 相关的知识。

如果你之前已经使用了这些服务,请做好数据备份操作,再跟随文章进行升级,如果你是新用户,那么就可以忽略这些问题,大胆放心的搞起啦。

Miniflux 升级

自去年文章写好后,miniflux 从 2.0.14 升级到了 2.0.19,应用命令有了比较大的变化:文档地址。

数据库升级

当时示例中的数据库postgres,也从 10.1 升级到了 12.1,因为跨了大版本,数据文件不兼容。如果要升级,需要先将数据导出,再重新导入。所以如果你已经在使用 Miniflux,并且没有使用云服务商的数据库,而是使用文章示例中的数据库方案,请不要直接修改配置,升级数据库版本,单独升级应用就好了。

应用配置

单机使用的完整配置依旧很简单,如果你使用云服务商的数据库,可以删除掉:

version: '3'

services:

  miniflux:
    image: miniflux/miniflux:2.0.19
    restart: always
    depends_on:
      - db
    expose:
      - 8080
    networks:
      - traefik
    environment:
      - DEBUG=0
      - LOG_DATE_TIME=1
      # 15 mins
      - POLLING_FREQUENCY=15
      - LISTEN_ADDR=0.0.0.0:8080
      - BASE_URL=https://miniflux.lab.com/
      - CLEANUP_FREQUENCY_HOURS=876000
      - CLEANUP_ARCHIVE_READ_DAYS=36500
      - CLEANUP_REMOVE_SESSIONS_DAYS=36500
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=soulteary
      - ADMIN_PASSWORD=soulteary
      - PROXY_IMAGES=all
      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      - "traefik.http.routers.whoami0.middlewares=https-redirect@file"
      - "traefik.http.routers.whoami0.entrypoints=http"
      - "traefik.http.routers.whoami0.rule=Host(`miniflux.lab.com`,`miniflux.lab.io`)"
      - "traefik.http.routers.whoami1.middlewares=content-compress@file"
      - "traefik.http.routers.whoami1.entrypoints=https"
      - "traefik.http.routers.whoami1.tls=true"
      - "traefik.http.routers.whoami1.rule=Host(`miniflux.lab.com`,`miniflux.lab.io`)"
      - "traefik.http.services.whoamibackend.loadbalancer.server.scheme=http"
      - "traefik.http.services.whoamibackend.loadbalancer.server.port=8080"

  db:
    image: postgres:12.1-alpine
    restart: always
    expose:
      - 5432
    networks:
      - traefik
    volumes:
      - ./data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=secret

networks:
  traefik:
    external: true

将内容保存为 docker-compose.yml 后,使用 docker-compose up-d 启动应用,稍等片刻看到下面的内容的时候,就说明应用启动完毕了。

启动过程中可能遇到 miniflux_miniflux_1 exitedwithcode1 的报错,这是因为 depends_on 仅检查依赖数据库是否启动,而不检查数据库是否 readyforconnection,更好的解决方案是,搭配 “wait-for” 脚本使用,不过因为这里声明了应用出错重启,所以耐心等待应用重启就好了。

db_1        | 2020-02-02 14:43:24.329 UTC [45] LOG:  database system was shut down at 2020-02-02 14:43:24 UTC
db_1        | 2020-02-02 14:43:24.353 UTC [1] LOG:  database system is ready to accept connections
miniflux_1  | Current schema version: 0
miniflux_1  | Latest schema version: 25
miniflux_1  | Migrating to version: 1
db_1        | 2020-02-02 14:43:26.795 UTC [52] ERROR:  relation "schema_version" does not exist at character 21
db_1        | 2020-02-02 14:43:26.795 UTC [52] STATEMENT:  select version from schema_version
miniflux_1  | Migrating to version: 2
miniflux_1  | Migrating to version: 3
miniflux_1  | Migrating to version: 4
miniflux_1  | Migrating to version: 5
miniflux_1  | Migrating to version: 6
miniflux_1  | Migrating to version: 7
miniflux_1  | Migrating to version: 8
miniflux_1  | Migrating to version: 9
miniflux_1  | Migrating to version: 10
miniflux_1  | Migrating to version: 11
miniflux_1  | Migrating to version: 12
miniflux_1  | Migrating to version: 13
miniflux_1  | Migrating to version: 14
miniflux_1  | Migrating to version: 15
miniflux_1  | Migrating to version: 16
miniflux_1  | Migrating to version: 17
miniflux_1  | Migrating to version: 18
miniflux_1  | Migrating to version: 19
miniflux_1  | Migrating to version: 20
miniflux_1  | Migrating to version: 21
miniflux_1  | Migrating to version: 22
miniflux_1  | Migrating to version: 23
miniflux_1  | Migrating to version: 24
miniflux_1  | Migrating to version: 25
miniflux_1  | [2020-02-02T14:43:27] [INFO] Starting Miniflux...
miniflux_1  | [2020-02-02T14:43:27] [INFO] Starting scheduler...
miniflux_1  | [2020-02-02T14:43:27] [INFO] Listening on "0.0.0.0:8080" without TLS

浏览器中访问配置好的域名,比如本例中的 miniflux.lab.comminiflux.lab.io,即可开始使用。

应用界面

界面配置等,可参考去年的文章进行配置。

最后

其他 RSS 应用的更新,可以参考上面的配置进行操作,目前看来 Miniflux / FreshRSS 还是值得继续使用的,stringer 的更新维护相比之下稍显逊色。

--EOF

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 折腾技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)
    • 写在前面
      • Miniflux 升级
        • 数据库升级
        • 应用配置
        • 应用界面
      • 最后
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档