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

Create time: January 5, 2019 statistical word count: 1983 words reading time: 4 minutes to read this article links: soulteary.com/2019/01/05/…


Build your own RSS service with Docker (FreshRSS)

In a world of algorithmic recommendations, customizing access to information is a bit of an alternative, but it can be a more efficient approach.

This is the first of three examples of how to build a regular RSS service, FreshRSS.

If you’ve read any of my previous posts, it should take 3 minutes or less to put together this article. If you haven’t, you can click on the relevant article TAB to read previous posts.

About FreshRSS

FreshRSS is an RSS service written in PHP. Compared to the better-known TT-RSS, which is written in PHP, FreshRSS has maintained better functionality and iteration as it continues to cultivate the GitHub open source community.

The main reasons I used it before were:

  • Support for offline caching, including image offline access (using the ImageProxyExtension plug-in).
  • Fever API support, allowing users to read on the client reader.
  • Support plug-ins, also convenient for users to write plug-ins for customized use.

If you want to learn more, you can visit here, if you just want to use, then read on.

Use Docker and Traefik for service

At the time of writing, I noticed that the official community had submitted how to build the service using Traefik more than a dozen days ago, but apparently I offered a simpler solution for this submission.

The following is the configuration of the service application that I provided. Considering the maintainability of the service, I have split the database and the application. If you like the Bundle, you can combine the two configurations.

version: '3'Services: nginx: image: freshrss/freshrss:1.13.0 restart: always container_name: freshrss environment: CRON_MIN: 17,47 networks: -traefik labels: -"traefik.enable=true"
      - "traefik.frontend.rule=Host:rss.lab.com"
      - "traefik.frontend.entryPoints=http,https"
    volumes:
      - ./data:/var/www/FreshRSS/data
      - ./extensions:/var/www/FreshRSS/extensions

networks:
  traefik:
    external: true
Copy the code

Now that the docker-compose up service is up, let’s continue messing with the database. Here’s the database configuration.

version: '3'Services: mariadb: image: mariadb:10.3.8 restart: always container_name: rss-db networks: -traefik environment: MYSQL_DATABASE: freshrss MYSQL_USER: freshrss MYSQL_PASSWORD: pass MYSQL_ROOT_PASSWORD: soulteary volumes: - ./data:/var/lib/mysql labels: -"traefik.enable=false"Phpmyadmin: image: phpmyadmin/phpmyadmin: 4.8.2 restart: always networks: - traefik environment: MYSQL_USER: ttrss MYSQL_PASSWORD: ttrss MYSQL_ROOT_PASSWORD: soulteary PMA_HOST: rss-db labels: -"traefik.frontend.rule=Host:rss-pma.lab.com"
      - "traefik.enable=true"

networks:
  traefik:
    external: true
Copy the code

Similarly, use docker-compose up to get the service up and running, open your browser, go to rss.lab.com, and with a simple configuration, you’ll have a powerful, user-friendly RSS subscription service.

The last

When I wrote my articles before, I always considered the students who had no basic knowledge of reading and ignored the students who had been subscribing and paying attention to me. In the future, I will give a brief guide just like this article, which will not repeat the basic construction but only talk about the core parts related to the theme.

Although this service is completed, it cannot serve us well, because in the current network environment, more and more websites are “forced to close up” and no longer support the RSS subscription mode. As for how to solve this problem, please wait patiently for the solution I provide after the end of these three articles.

– 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 indicate source and purpose, otherwise it will not be approved.

All this stuff about getting into groups