<!DOCTYPE html> <html lang="en"> <head><title>Miniflux for Self-Hosted RSS – estradiol.cloud</title> <meta name="description" content="> [the regrown limb can be monstrous, duplicated, potent. We have all been injured, profoundly.](https://doi.org/10.5749/minnesota/9780816650477.003.0001) ---- kubernetes is for girls "> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="UTF-8"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.9.4/css/academicons.min.css" integrity="sha512-IW0nhlW5MgNydsXJO40En2EoCkTTjZhI3yuODrZIc8cQ4h1XcF53PsqDHa09NqnkXuIe0Oiyyj171BqZFwISBw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://estradiol.cloud/css/palettes/material.css"> <link rel="stylesheet" href="https://estradiol.cloud/css/risotto.css"> <link rel="stylesheet" href="https://estradiol.cloud/css/custom.css"> <link rel="alternate" type="application/rss+xml" title="estradiol.cloud Feed" href="index.xml" /> </head> <body> <div class="page"> <header class="page__header"><nav class="page__nav main-nav"> <ul> <li class="nomarker"><h1 class="page__logo"><a href="https://estradiol.cloud/" class="page__logo-inner">estradiol.cloud</a></h1></li> <li class="main-nav__item"><a class="nav-main-item active" href="https://estradiol.cloud/posts/" title="">Posts</a></li> </ul> </nav> </header> <section class="page__body"> <header class="content__header"> <h1>Miniflux for Self-Hosted RSS</h1> </header> <div class="content__body"> <p>inspired by <a href="https://rss-is-dead.lol">rss-is-dead.lol</a>, i decided to start self-hosting an RSS reader. the one i deployed is <a href="https://miniflux.app/">Miniflux</a>, “a minimalist and opinionated feed reader”. it’s not clear to me what its opinions are, but i do like the simple pinboardesque interface.</p> <p><img src="images/miniflux.png" alt="dark miniflux interface"></p> <p>i deployed it using the <a href="https://charts.gabe565.com/charts/miniflux/">Helm chart</a> provided by Gabe365. this chart seems to be part of the splintering of <code>k8s-at-home</code>. it does the trick, but i had to work around a few issues:</p> <ol> <li>ingress configuration is unusual; especially i had to explictly provide a <code>seceretName</code> to <code>tls</code> configuration.</li> <li>getting postgres configured without including the password in <code>values.yaml</code> was a little challenging. i had to use <code>existingSecret</code> (which is supported by the upstream bitnami chart), but using it in the existing chart required: <ul> <li>the existing seceret be named according to a specific pattern <code>{{ $.Release.Name }}-postgresql</code>;</li> <li><a href="https://github.com/gabe565/charts/blob/aa3c133d553d9eb3b2b6585a6ce0748babcfab20/charts/miniflux/templates/common.yaml#L17">provide a dummy <code>postgresql.auth.password</code></a> to avoid the <code>miniflux</code> chart using the admin password</li> </ul> </li> </ol> <p> <details> <summary><code>values.yaml</code></summary> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">ingress</span>: </span></span><span style="display:flex;"><span> <span style="color:#f92672">main</span>: </span></span><span style="display:flex;"><span> <span style="color:#f92672">enabled</span>: <span style="color:#66d9ef">true</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">className</span>: <span style="color:#ae81ff">nginx</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">annotations</span>: </span></span><span style="display:flex;"><span> <span style="color:#f92672">cert-manager.io/cluster-issuer</span>: <span style="color:#ae81ff">letsencrypt-prod</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">hosts</span>: </span></span><span style="display:flex;"><span> - <span style="color:#f92672">host</span>: <span style="color:#ae81ff">read.estradiol.cloud</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">paths</span>: </span></span><span style="display:flex;"><span> - <span style="color:#f92672">path</span>: <span style="color:#ae81ff">/</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">tls</span>: </span></span><span style="display:flex;"><span> - <span style="color:#f92672">hosts</span>: </span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">read.estradiol.cloud</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">secretName</span>: <span style="color:#ae81ff">miniflux-tls</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">postgresql</span>: </span></span><span style="display:flex;"><span> <span style="color:#f92672">enabled</span>: <span style="color:#66d9ef">true</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">auth</span>: </span></span><span style="display:flex;"><span> <span style="color:#f92672">database</span>: <span style="color:#ae81ff">miniflux</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">username</span>: <span style="color:#ae81ff">miniflux</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">password</span>: <span style="color:#ae81ff">usused-chart-hack</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">existingSecret</span>: <span style="color:#ae81ff">miniflux-postgresql</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">persistence</span>: </span></span><span style="display:flex;"><span> <span style="color:#f92672">enabled</span>: <span style="color:#66d9ef">true</span> </span></span><span style="display:flex;"><span> <span style="color:#f92672">size</span>: <span style="color:#ae81ff">10Gi</span> </span></span></code></pre></div> </details> </p> </div> <footer class="content__footer"></footer> </section> <section class="page__aside"> <div class="aside__about"> <div class="aside__about"> <h1 class="about__title">it's estradiol.cloud!</h1> <p class="about__description"><blockquote> <p><a href="https://doi.org/10.5749/minnesota/9780816650477.003.0001">the regrown limb can be monstrous, duplicated, potent. We have all been injured, profoundly.</a></p> </blockquote> <hr> <p>kubernetes is for girls</p> </p> </div> <ul class="aside__social-links"> <li> <i class="fa-brands fa-mastodon"></i> <a href="https://hachyderm.io/@no_reply" rel="me" title="Hachyderm">hachyderm.io/@no_reply</a> </li> <li> <i class="fa-brands fa-mastodon"></i> <a href="https://chaosfem.wt/@t4tamsin" rel="me" title="Chaosfem"></i>chaosfem.tw/@t4tamsin</a> </li> <li> <i class="fa-brands fa-git-alt"></i> <a href="https://code.estradiol.cloud" rel="me" title="Code">code</a> </li> <li> <i class="fa-brands fa-gitlab"></i> <a href="https://gitlab.com/no-reply" rel="me" title="Code">work code</a> </li> <li> <i class="fa-brands fa-github"></i> <a href="https://github.com/no_eply" rel="me" title="Code">more code</a> </li> </ul> </div> <hr> <div class="aside__content"> <p> 2024-03-04 </p> </div> </section> <footer class="page__footer"></footer> </div> </body> </html>