estradiol.cloud/content/posts/miniflux-rss/index.md

61 lines
2.1 KiB
Markdown

+++
title = 'Miniflux for Self-Hosted RSS'
date = 2024-03-04T14:56:38-08:00
categories = ['Tutorial']
tags = ['meta', 'k8s', 'miniflux', 'rss']
+++
inspired by [rss-is-dead.lol][rss-dead], i decided to start self-hosting an RSS reader.
the one i deployed is [Miniflux][miniflux], "a minimalist and opinionated feed reader".
it's not clear to me what its opinions are, but i do like the simple pinboardesque
interface.
![dark miniflux interface](images/miniflux.png)
i deployed it using the [Helm chart][miniflux-helm] provided by Gabe365. this chart
seems to be part of the splintering of `k8s-at-home`. it does the trick, but i had to
work around a few issues:
1. ingress configuration is unusual; especially i had to explictly provide a `seceretName`
to `tls` configuration.
1. getting postgres configured without including the password in `values.yaml` was a
little challenging. i had to use `existingSecret` (which is supported by the upstream
bitnami chart), but using it in the existing chart required:
- the existing seceret be named according to a specific pattern
`{{ $.Release.Name }}-postgresql`;
- [provide a dummy `postgresql.auth.password`][miniflux-code] to avoid the
`miniflux` chart using the admin password
{{< code-details summary="`values.yaml`" lang="yaml" details=`
ingress:
main:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: read.estradiol.cloud
paths:
- path: /
tls:
- hosts:
- read.estradiol.cloud
secretName: miniflux-tls
postgresql:
enabled: true
auth:
database: miniflux
username: miniflux
password: usused-chart-hack
existingSecret: miniflux-postgresql
persistence:
enabled: true
size: 10Gi
` >}}
[miniflux]: https://miniflux.app/
[miniflux-helm]: https://charts.gabe565.com/charts/miniflux/
[miniflux-code]: https://github.com/gabe565/charts/blob/aa3c133d553d9eb3b2b6585a6ce0748babcfab20/charts/miniflux/templates/common.yaml#L17
[rss-dead]: https://rss-is-dead.lol