Return to RSS

Currently, I have my information sources scattered across different platforms, including newsletters, Telegram channels, Twitter, blogs, and webpages saved in Pocket.

I used to use Inoreader as an RSS client to subscribe to my RSS sources, but the free plan had many limitations and was also blocked by the China Great Firewall. Therefore, I decided to choose a self-hosted RSS reader.

The main options included Miniflux, FreshRSS, and Tiny Tiny RSS. I ultimately chose Miniflux because it is lightweight and has all the features I need.

Install docker compose plugin

Install the Compose plugin | Docker Documentation
If you already have Docker Engine and Docker CLI installed, you can install the Compose plugin from the command line

1
2
3
sudo apt-get update
sudo apt-get install docker-compose-plugin
docker compose version

Create docker-compose.yml

Installation Instructions

1
2
mkdir miniflux
vim docker-compose.yml

v2/basic.yml at main · miniflux/v2 · GitHub
Edit your config: port , username, password etc.

When using Docker Compose, it is important to remember not to include the in your password, you will need to escape it using a backslash, like this: \$. This is because $VARIABLE and ${VARIABLE} are used for variable substitution in docker-compose.yml. I learned this the hard way when I used a password generated by Bitwarden and didn’t realize it contained a dollar sign. It took me a while to figure out the issue.”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '3.4'
services:
miniflux:
image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}
container_name: miniflux
restart: always
ports:
- "80:8080"
depends_on:
- db
environment:
- DATABASE_URL=postgres://miniflux:secret@db/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:

docker compose up | Docker Documentation

1
2
3
4
5
# first start the db.  -d means detached, run in the background
docker compose up -d db

# and then the application.
docker compose up -d miniflux

Reverse Proxy with Caddy

Add CNAME record in the DNS for your domain.
Edit Caddyfile and restart caddy service

1
vim /etc/caddy/Caddyfile
1
2
3
4
rss.your.domain 
{
reverse_proxy localhost:port
}

Useful tools to work with RSS

  • Convert newsletter to RSS: Kill the Newsletter!
  • Pocket RSS: https://getpocket.com/users/[username]/feed/all, subscribe with username and password
  • RSSHub: RSSHub is a RSS feed generator to make everything RSSible.
  • iOS client: Unread is a very beautiful RSS reader for iOS that supports the Fever API