+++
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
