This article is published under a SIGNATURE 4.0 International (CC BY 4.0) license. Signature 4.0 International (CC BY 4.0)
Author: Su Yang
On creation time: in 2020, 02. 02 statistical word count: 4727 words reading time: 10 minutes to read this article links: soulteary.com/2020/02/02/…
Build RSS Server with Docker and Traefik V2 (Miniflux)
As mentioned above, I’m going to talk about how to upgrade an old app based on last year’s article. This article will take an RSS service as an example and briefly discuss how to do this.
Writing in the front
Last year, I wrote three articles about how to build AN RSS service with Docker. This is the first article about how to build an RSS service in early 2020.
- Using the Docker to build your own RSS service (Miniflux) : soulteary.com/2019/01/22/…
- Using the Docker to build your own RSS service (stringer) : soulteary.com/2019/01/06/…
- Using the Docker to build your own RSS service (FreshRSS) : soulteary.com/2019/01/05/…
If you are not familiar with Traefik, you can learn about Traefik V2 by referring to the Traefik 2 User Guide, A Pleasant Development Experience, and configuring a Traefik V2-based Web server.
If you are already using these services, please back up your data and follow this article to upgrade. If you are a new user, you can ignore these problems and get started with them.
Miniflux upgrade
Since the article was written last year, MiniFlux has been upgraded from 2.0.14 to 2.0.19 with a major change in application commands: document address.
Database Upgrade
Postgres, the database in the example, was also upgraded from 10.1 to 12.1 because of incompatible data files across large versions. To upgrade, you need to export data and import it again. So if you are already using Miniflux and are not using a database from a cloud service provider, instead use the database solution described in the article example, do not change the configuration directly, upgrade the database version, and upgrade the application separately.
Application configuration
The complete configuration for standalone use is still simple and can be deleted if you use a cloud service provider’s database:
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- 15 - LISTEN_ADDR POLLING_FREQUENCY = = 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
Copy the code
Yml: docker-compose up -d: docker-compose up -d: docker-compose up -d: docker-compose up
Error “miniFlux_miniFLUx_1 exited with code 1” depends_on checks whether the database is ready for connection or not. A better solution would be to use it with a “wait-for” script, but since it states that the application has restarted in error, just wait for it to restart.
Db_1 | 2020-02-02 14:43:24. 329 UTC [45] the LOG: Database system was shut down at the end of the 2020-02-02 14:43:24 UTC db_1 | 2020-02-02 14:43:24. 353 UTC [1] the 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: base"schema_version"Does not exist at 21 db_1 character | 2020-02-02 14:43:26. 795 UTC [52] the 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
Copy the code
Access the configured domain name in the browser, for example, miniflux.lab.com or miniflux.lab. IO.
Application interface
For details about interface configuration, see last year’s article.
The last
For updates to other RSS applications, see the above configuration. Miniflux/FreshRSS is still worth using, while Stringer’s update maintenance is a bit less impressive.
–EOF
I now have a small toss group, which gathered some like to toss small partners.
In the case of no advertisement, we will talk about software, HomeLab and some programming problems together, and also share some technical salon information in the group from time to time.
Like to toss small partners welcome to scan code to add friends. (Please specify source and purpose, otherwise it will not be approved)
All this stuff about getting into groups