Recently
+-
+ {{ range first 10 .Site.RegularPages }}
+
- + {{ .PublishDate | time.Format "2006-01-02" }} — {{ .LinkTitle }} + + {{ end }} +
diff --git a/.d2/hugo-container-build.d2 b/.d2/hugo-container-build.d2
new file mode 100644
index 0000000..8225f63
--- /dev/null
+++ b/.d2/hugo-container-build.d2
@@ -0,0 +1,6 @@
+title: |md
+ # deploy w/ container build & actions
+| {
+ shape: text
+ near: top-center
+}
diff --git a/content/_index.html b/content/_index.html
new file mode 100644
index 0000000..0c06e8a
--- /dev/null
+++ b/content/_index.html
@@ -0,0 +1 @@
+it's a website!
diff --git a/content/posts/miniflux-rss/images/miniflux.png b/content/posts/miniflux-rss/images/miniflux.png
new file mode 100644
index 0000000..f8397dd
Binary files /dev/null and b/content/posts/miniflux-rss/images/miniflux.png differ
diff --git a/content/posts/miniflux-rss/index.md b/content/posts/miniflux-rss/index.md
new file mode 100644
index 0000000..a12b9a9
--- /dev/null
+++ b/content/posts/miniflux-rss/index.md
@@ -0,0 +1,60 @@
++++
+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
diff --git a/hugo.toml b/hugo.toml
index 579067b..d9e3b4d 100644
--- a/hugo.toml
+++ b/hugo.toml
@@ -42,4 +42,5 @@ palette = "material"
weight = 20
[minify]
- disableHTML = true
\ No newline at end of file
+ disableHTML = true
+ disableXML = true
\ No newline at end of file
diff --git a/layouts/index.html b/layouts/index.html
new file mode 100644
index 0000000..a4fd682
--- /dev/null
+++ b/layouts/index.html
@@ -0,0 +1,18 @@
+{{ define "main" }}
+ Recently
+
+ {{ range first 10 .Site.RegularPages }}
+
+
inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. +the one i deployed is 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.
+ +i deployed it using the Helm chart 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:
seceretName
+to tls
configuration.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:
+{{ $.Release.Name }}-postgresql
;postgresql.auth.password
to avoid the
+miniflux
chart using the admin passwordvalues.yaml
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
+
+ + 2024-03-04 +
+ + + + +