estradiol.cloud/public/posts/miniflux-rss/index.html

154 lines
7.3 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head><title>Miniflux for Self-Hosted RSS &ndash; estradiol.cloud</title>
<meta name="description" content="">
<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">
</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>, &ldquo;a minimalist and opinionated feed reader&rdquo;.
it&rsquo;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>
<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>
</div>
<footer class="content__footer"></footer>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
</div>
<ul class="aside__social-links">
<li>
<a href="https://hachyderm.io/@no_reply" rel="me" aria-label="Hachyderm" title="Hachyderm"><i class="fa-brands fa-mastodon" aria-hidden="true"></i></a>&nbsp;
</li>
<li>
<a href="https://gitlab.com/no_reply" rel="me" aria-label="GitLab" title="GitLab"><i class="fa-brands fa-gitlab" aria-hidden="true"></i></a>&nbsp;
</li>
<li>
<a href="https://github.com/no-reply" rel="me" aria-label="GitHub" title="GitHub"><i class="fa-brands fa-github" aria-hidden="true"></i></a>&nbsp;
</li>
</ul>
</div>
<hr>
<div class="aside__content">
<p>
2024-03-04
</p>
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>