[5 Min Docker] Deploy A Free RSS Aggregator Website - Miniflux
I found RSS aggregator service could help for my this problem. But all of this kind of online service are not free or not free enough for me to get what I need. I decided to look for a self-hosted RSS aggregator solution. That is how I started this post.Â
Introduction
- Tiny Tiny RSS
- FreshRSS
- miniflux
- Stringer
miniflux
- Github page:Â https://github.com/miniflux/v2
- Official website:Â https://miniflux.app
- Documentation site:Â https://miniflux.app/docs/Â (Man page)
- Installation :Â https://miniflux.app/docs/installation.html
Installation from Docker
Docker Registries:
- Docker Hub Registry:Â
docker.io/miniflux/miniflux
- GitHub Container Registry:Â
ghcr.io/miniflux/miniflux
Docker Architectures:
amd64
arm64
arm/v7
arm/v6
1Â Log in to Play With Dcker website and create a new instance
URL:Â https://labs.play-with-docker.com/
2Â In the new instance session command line, create a new file: basic.yml
You can find out this basic.yml file and other version's yml file from this url:
https://github.com/miniflux/v2/tree/master/contrib/docker-compose
- vi basic.yml
3Â In this new basic.yml file, paste into follow text:
version: '3.4'
services:
miniflux:
image: miniflux/miniflux:latest
ports:
- "80:8080"
depends_on:
- db
environment:
- DATABASE_URL=postgres://miniflux:[email protected]/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=test123
db:
image: postgres:15
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
4Â start dockers
[node1] (local) [email protected] ~
$ docker-compose -f basic.yml up -d
[+] Running 2/2
â ¿ Container postgres Started 2.0s
â ¿ Container miniflux Started 3.5s
[node1] (local) [email protected] ~
5Â Open Port 80 to visit this website
Installation from Portainer
ÂYou can find out this basic.yml template file and other version's yml file from this url:
https://github.com/miniflux/v2/tree/master/contrib/docker-compose
version: '3.4'
services:
miniflux:
image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}
container_name: miniflux
restart: always
ports:
- "8010:8080"
depends_on:
- db
environment:
- DATABASE_URL=postgres://miniflux:[email protected]/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=test123
- DEBUG=1
# Optional health check:
# healthcheck:
# test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
db:
image: postgres:15
container_name: postgres
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
- Ports: default port is 80, you might already used 80 for something else, I would suggest change it to others, such as , 8010.Â
- You might also need to change your VPS's firewall port to allow 8010
- Default password for user admin.
Integrate with your own domain and enable HTTPS
You can find out this traefik.yml file as template for your reverse proxy configuration to integrate your own domain and enable https to your URL:https://github.com/miniflux/v2/tree/master/contrib/docker-compose
version: '3.4'
services:
traefik:
image: "traefik:v2.3"
container_name: traefik
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=[email protected]"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
depends_on:
- miniflux
ports:
- "443:443"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
miniflux:
image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}
container_name: miniflux
depends_on:
- db
expose:
- "8080"
environment:
- DATABASE_URL=postgres://miniflux:[email protected]/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=test123
- BASE_URL=https://rss.51sec.org
labels:
- "traefik.enable=true"
- "traefik.http.routers.miniflux.rule=Host(`rss.51sec.org`)"
- "traefik.http.routers.miniflux.entrypoints=websecure"
- "traefik.http.routers.miniflux.tls.certresolver=myresolver"
db:
image: postgres:15
container_name: postgres
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
Videos
ÂReferences
Relate blog posts for Docker:
- [5 Minutes Docker Series] Deploy A Free RSS Aggregator Website - miniflux
- [5 Minutes Docker Series] Deploy A Free File List App for Multiple Cloud Storages - Alist
- [5 Mins Docker Series] Minimalist Web Notepad - A Simple Online Notepad
- [5 Mins Docker Series] Koel - An Open Source Personel Music Streaming Software
- Deploy Aria2 Docker To Download Files to Cloud Drives (Google Drive, One Drive etc)
- Using Portainer to Deploy Guacamole As Web Based Remote Access Gateway (Updated)
- Run Pi-hole Docker in Ubuntu for Family Internet Safety and Ads Blocking
- Using Portainer to Deploy OpenWRT Docker
- Install n.eko (A Self Hosted Virtual Browser Docker) in Low Memory VPS (1GB)
- Using Docker+Portainer to Install Open Source Password Manager - BitWarden
- Deploy Docker, Docker-Compose, Portainer and NPM (Nginx Proxy Manager)
- Install NextCloud Docker and Integrate with Nginx and LetsEncrypt SSL Certificate
- Install Docker, Docker-Compose, Portainer & Nginx on CentOS 8 & Ubuntu 20.04
- Portainer Usage Tips and Tricks
- Docker Usage Tips and Tricks
No comments