Compare commits
2 Commits
459dfcf6aa
...
a4314b1088
Author | SHA1 | Date | |
---|---|---|---|
a4314b1088 | |||
700a8dbdf6 |
6
.d2/hugo-container-build.d2
Normal file
6
.d2/hugo-container-build.d2
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
title: |md
|
||||||
|
# deploy w/ container build & actions
|
||||||
|
| {
|
||||||
|
shape: text
|
||||||
|
near: top-center
|
||||||
|
}
|
1
content/_index.html
Normal file
1
content/_index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
it's a website!
|
@ -1,354 +0,0 @@
|
|||||||
+++
|
|
||||||
title = 'Hugo on Kubernetes & NGINX'
|
|
||||||
date = 2024-02-28T15:35:46-08:00
|
|
||||||
draft = true
|
|
||||||
series = ['wtf']
|
|
||||||
categories = ['Tutorial']
|
|
||||||
tags = ['meta', 'k8s', 'flux', 'hugo']
|
|
||||||
toc = true
|
|
||||||
+++
|
|
||||||
|
|
||||||
i decided to make a website. a static one. this one. with [Hugo][hugo]. the
|
|
||||||
main reason i have for this is as a vanity project so i have some stuff to
|
|
||||||
host in a [Kubernetes][k8s] cluster i'm running. the k8s cluster is also as
|
|
||||||
a vanity project.
|
|
||||||
|
|
||||||
because i don't like software, i wanted a way to deploy my site that doesn't
|
|
||||||
involve much of it. this post is about that.
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
i built my site by following the straight-forward
|
|
||||||
_[Getting Started][hugo-started]_ guide in the Hugo documentation.
|
|
||||||
|
|
||||||
i did `hugo new site estradiol.cloud`. and then `cd estradiol.cloud; git init`.
|
|
||||||
and then i picked a ridiculous theme
|
|
||||||
["inspired by terminal ricing aesthetics"][risotto], installing it like `git
|
|
||||||
submodule add https://github.com/joeroe/risotto.git themes/risotto; echo "theme
|
|
||||||
= 'risotto'" >> hugo.toml`.[^1]
|
|
||||||
|
|
||||||
[^1]: i appreciate the culinary theme.
|
|
||||||
|
|
||||||
at this point, my website is basically finished (i also changed the title in
|
|
||||||
`hugo.toml`). i probably won't be putting anything on it, so there's no point fiddling with other
|
|
||||||
details.
|
|
||||||
|
|
||||||
about deployment, the guide's _[Basic Usage][hugo-deploy]_ page has this to offer:
|
|
||||||
|
|
||||||
> Most of our users deploy their sites using a CI/CD workflow, where a push{{< sup "1" >}}
|
|
||||||
> to their GitHub or GitLab repository triggers a build and deployment. Popular
|
|
||||||
> providers include AWS Amplify, CloudCannon, Cloudflare Pages, GitHub Pages,
|
|
||||||
> GitLab Pages, and Netlify.
|
|
||||||
>
|
|
||||||
> 1. The Git repository contains the entire project directory, typically excluding the
|
|
||||||
> public directory because the site is built _after_ the push.
|
|
||||||
|
|
||||||
importantly, you can't make a post about deploying this way. _everyone_ deploys
|
|
||||||
this way. if _i_ deploy this way, this site will have no content.
|
|
||||||
|
|
||||||
it also involves some system somewhere that can run Hugo to build the site and push
|
|
||||||
it to some remote system where my cluster can reach the compiled site. i definitely
|
|
||||||
already need Hugo installed on my workstation if i'm going to post anything.[^2]
|
|
||||||
so now i'm running Hugo in two places. there's surely going to be other complex
|
|
||||||
nonsense like webhooks involved.
|
|
||||||
|
|
||||||
[^2]: unlikely.
|
|
||||||
|
|
||||||
![diagram: deploy w/ GitHub pages & actions](images/hugo-github-pages.svg)
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
and hang on. let's look at this again:
|
|
||||||
|
|
||||||
> 1. The Git repository contains the entire project directory, typically excluding the
|
|
||||||
> public directory because the site is built _after_ the push.
|
|
||||||
|
|
||||||
you're telling me i'm going to build a nice static site and not check the
|
|
||||||
_actual content_ into version control? couldn't be me.
|
|
||||||
|
|
||||||
## Getting Static
|
|
||||||
|
|
||||||
suppose i instead checked my content into git exactly as i intend to serve it?
|
|
||||||
then i could shell into my server box, pull the site, and _nifty-galifty!_ isn't
|
|
||||||
this the way it has [always been done][worm-love]?
|
|
||||||
|
|
||||||
|
|
||||||
my problem is that i don't have a server box. i have a _container orchestration
|
|
||||||
system_. there are several upsides to this[^3] but it means that _somehow_ my
|
|
||||||
generated content needs to end up in a container. because [Pods][k8s-pods] are
|
|
||||||
ephemeral and i'd like to run my site with horizontal scalability[^4], i don't
|
|
||||||
want my container to need to retain runtime state across restarts or replicas.
|
|
||||||
|
|
||||||
[^3]: few of which could be considered relevant for my project.
|
|
||||||
[^4]: i absolutely will not need this
|
|
||||||
|
|
||||||
i _could_ run a little pipeline that builds a container wrapping my content and
|
|
||||||
pushes it to a registry somewhere my deployments can pull it. all ready to go.
|
|
||||||
but now i've got _software_ again: build stages and webhooks and, to make matters
|
|
||||||
worse, now i'm hosting and versioning container images.
|
|
||||||
|
|
||||||
![diagram: deploy w/ container build](/images/hugo-container-build.svg)
|
|
||||||
|
|
||||||
i don't want any of this. i just want to put some HTML and static assets behind a
|
|
||||||
web server.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
instead, i'd like to deploy a popular container image from a public registry
|
|
||||||
and deliver my content to it continuously.
|
|
||||||
|
|
||||||
a minimal setup to achieve this might look like:
|
|
||||||
|
|
||||||
- a `Pod` with:
|
|
||||||
- an `nginx` container to serve the content;
|
|
||||||
- a `git-pull` sidecar that loops, pulling the git content;
|
|
||||||
- an `initContainer` to do the initial checkout;
|
|
||||||
- an `emptyDir` volume to share between the containers.
|
|
||||||
- a `ConfigMap` to store the nginx config.
|
|
||||||
|
|
||||||
|
|
||||||
![diagram: minimal pod/configmap setup](/images/hugo-minimal-pod-setup.svg)
|
|
||||||
|
|
||||||
i use `git sparse-checkout` to avoid pulling repository contents i don't want
|
|
||||||
to serve out:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# git-clone command
|
|
||||||
git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /tmp/www;
|
|
||||||
cd /tmp/www;
|
|
||||||
git sparse-checkout init --cone;
|
|
||||||
git sparse-checkout set public;
|
|
||||||
git checkout;
|
|
||||||
shopt -s dotglob
|
|
||||||
mv /tmp/www/* /www
|
|
||||||
```
|
|
||||||
|
|
||||||
script up my `git pull` loop:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# git-pull command
|
|
||||||
while true; do
|
|
||||||
cd /www && git -c safe.directory=/www pull origin trunk
|
|
||||||
sleep 60
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
and configure `nginx` to use `public/` as root:
|
|
||||||
|
|
||||||
```txt
|
|
||||||
# ConfigMap; data: default.conf
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
location / {
|
|
||||||
root /www/public;
|
|
||||||
index index.html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
the rest of this is pretty much boilerplate:
|
|
||||||
|
|
||||||
{{< code-details summary="`kubectl apply -f estradiol-cloud.yaml`" lang="yaml" details=`
|
|
||||||
# estradiol-cloud.yaml
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/instance: estradiol-cloud
|
|
||||||
app.kubernetes.io/name: nginx
|
|
||||||
name: nginx-server-block
|
|
||||||
data:
|
|
||||||
default.conf: |-
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
location / {
|
|
||||||
root /www/public;
|
|
||||||
index index.html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
name: nginx
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/instance: estradiol-cloud
|
|
||||||
app.kubernetes.io/name: nginx
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: nginx
|
|
||||||
image: nginx:1.25.4
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /www
|
|
||||||
name: www
|
|
||||||
- mountPath: /etc/nginx/conf.d
|
|
||||||
name: nginx-server-block
|
|
||||||
- name: git-pull
|
|
||||||
image: bitnami/git
|
|
||||||
command:
|
|
||||||
- /bin/bash
|
|
||||||
- -ec
|
|
||||||
- |
|
|
||||||
while true; do
|
|
||||||
cd /www && git -c safe.directory=/www pull origin trunk
|
|
||||||
sleep 60
|
|
||||||
done
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /www
|
|
||||||
name: www
|
|
||||||
initContainers:
|
|
||||||
- name: git-clone
|
|
||||||
image: bitnami/git
|
|
||||||
command:
|
|
||||||
- /bin/bash
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
shopt -s dotglob
|
|
||||||
git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /tmp/www;
|
|
||||||
cd /tmp/www;
|
|
||||||
p git sparse-checkout init --cone;
|
|
||||||
git sparse-checkout set public;
|
|
||||||
git checkout;
|
|
||||||
mv /tmp/www/* /www
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /www
|
|
||||||
name: www
|
|
||||||
volumes:
|
|
||||||
- name: www
|
|
||||||
emptyDir: {}
|
|
||||||
- name: nginx-server-block
|
|
||||||
configMap:
|
|
||||||
name: nginx-server-block
|
|
||||||
` >}}
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
my Hugo workflow now looks like:
|
|
||||||
|
|
||||||
1. make changes to source;
|
|
||||||
1. run `hugo --gc --minify`;[^7]
|
|
||||||
1. commit & push.
|
|
||||||
|
|
||||||
the only active process from this point is my little control loop running `git pull`.
|
|
||||||
|
|
||||||
[^7]: i added `disableHTML = true` to `[minify]` configuration in `hugo.toml`
|
|
||||||
to keep HTML diffs readable.
|
|
||||||
|
|
||||||
## Getting Web
|
|
||||||
|
|
||||||
my Pod is running. everything is great. if i want to browse to my website i
|
|
||||||
just need to setup a [port-forward][k8s-port]
|
|
||||||
|
|
||||||
TK: YAML counts as software.
|
|
||||||
|
|
||||||
conveniently, [Bitnami][bitnami] maintains a [Helm][helm] Chart that
|
|
||||||
|
|
||||||
![diagram: helm setup](/images/hugo-helm-setup.svg)
|
|
||||||
|
|
||||||
## Getting Flux'd
|
|
||||||
|
|
||||||
by this point i'm pretty `git push`-pilled and i'm thinking i don't much like
|
|
||||||
having this `helm` client software installed on my laptop.
|
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: bitnami
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
url: https://charts.bitnami.com/bitnami
|
|
||||||
```
|
|
||||||
|
|
||||||
{{< code-details summary="`release.yaml`" lang="yaml" details=`
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: web
|
|
||||||
namespace: estradiol-cloud
|
|
||||||
spec:
|
|
||||||
interval: 5m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: nginx
|
|
||||||
version: '15.12.2'
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bitnami
|
|
||||||
namespace: default
|
|
||||||
interval: 1m
|
|
||||||
values:
|
|
||||||
cloneStaticSiteFromGit:
|
|
||||||
enabled: true
|
|
||||||
repository: "https://code.estradiol.cloud/tamsin/estradiol.cloud.git"
|
|
||||||
branch: trunk
|
|
||||||
gitClone:
|
|
||||||
command:
|
|
||||||
- /bin/bash
|
|
||||||
- -ec
|
|
||||||
- |
|
|
||||||
[[ -f "/opt/bitnami/scripts/git/entrypoint.sh" ]] && source "/opt/bitnami/scripts/git/entrypoint.sh"
|
|
||||||
git clone {{ .Values.cloneStaticSiteFromGit.repository }} --no-checkout --branch {{ .Values.cloneStaticSiteFromGit.branch }} /tmp/app
|
|
||||||
[[ "$?" -eq 0 ]] && cd /tmp/app && git sparse-checkout init --cone && git sparse-checkout set public && git checkout && shopt -s dotglob && rm -rf /app/* && mv /tmp/app/* /app/
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
hostname: estradiol.cloud
|
|
||||||
ingressClassName: nginx
|
|
||||||
tls: true
|
|
||||||
annotations: {
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
||||||
}
|
|
||||||
serverBlock: |-
|
|
||||||
server {
|
|
||||||
listen 8080;
|
|
||||||
root /app/public;
|
|
||||||
index index.html;
|
|
||||||
}
|
|
||||||
service:
|
|
||||||
type: ClusterIP
|
|
||||||
`>}}
|
|
||||||
|
|
||||||
![Scenario 1: Across columns](images/flux-seq.svg)
|
|
||||||
|
|
||||||
## A Note About Software
|
|
||||||
|
|
||||||
at this point i'm forced to admit there's still a lot of software involved in this.
|
|
||||||
setting aside the stuff that provisions and scales my cluster nodes, i have:
|
|
||||||
|
|
||||||
- `nginx` (running from a stock image);
|
|
||||||
- `git` & `bash` (running from a stock image);
|
|
||||||
- a remote git server (i'm running `gitea`[^8], but github dot com is fine here);
|
|
||||||
- Kubernetes (oops!);
|
|
||||||
- `fluxcd`;
|
|
||||||
- especially `kustomize-controller` and `helm-controller`;
|
|
||||||
- `nginx-ingress` controller;
|
|
||||||
- the `bitnami/nginx` Helm chart;
|
|
||||||
|
|
||||||
[^8]: because i'm running `gitea` in my cluster and i want to avoid a circular
|
|
||||||
dependency for my `flux` source repository, i also depend on GitLab dot com.
|
|
||||||
|
|
||||||
i get to maintain my two `bash` scripts for `git-clone` and `git-pull`, my
|
|
||||||
NGINX config, and a couple of blobs of YAML.
|
|
||||||
|
|
||||||
at least there are no webhooks.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
_fin_
|
|
||||||
|
|
||||||
|
|
||||||
[bitnami]: https://bitnami.com/
|
|
||||||
[helm]: https://helm.sh
|
|
||||||
[hugo]: https://gohugo.io
|
|
||||||
[hugo-deploy]: https://gohugo.io/getting-started/usage/#deploy-your-site
|
|
||||||
[hugo-started]: https://gohugo.io/getting-started
|
|
||||||
[k8s]: https://kubernetes.io
|
|
||||||
[k8s-init]: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
|
|
||||||
[k8s-pods]: https://kubernetes.io/docs/concepts/workloads/pods/
|
|
||||||
[k8s-port]: https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
|
|
||||||
[k8s-pv]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
|
|
||||||
[risotto]: https://github.com/joeroe/risotto
|
|
||||||
[worm-love]: https://www.mikecurato.com/worm-loves-worm
|
|
BIN
content/posts/miniflux-rss/images/miniflux.png
Normal file
BIN
content/posts/miniflux-rss/images/miniflux.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
60
content/posts/miniflux-rss/index.md
Normal file
60
content/posts/miniflux-rss/index.md
Normal file
@ -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
|
@ -42,4 +42,5 @@ palette = "material"
|
|||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[minify]
|
[minify]
|
||||||
disableHTML = true
|
disableHTML = true
|
||||||
|
disableXML = true
|
18
layouts/index.html
Normal file
18
layouts/index.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{{ define "main" }}
|
||||||
|
<main aria-role="main">
|
||||||
|
<div class="homepage-content">
|
||||||
|
<!-- content/_index.md -->
|
||||||
|
{{ .Content }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2>Recently</h2>
|
||||||
|
<ul>
|
||||||
|
{{ range first 10 .Site.RegularPages }}
|
||||||
|
<li class="nomarker">
|
||||||
|
{{ .PublishDate | time.Format "2006-01-02" }} — <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{{ end }}
|
@ -49,6 +49,9 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/categories/tutorial/">Tutorial</a></li>
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on estradiol.cloud</title><link>https://estradiol.cloud/categories/</link><description>Recent content in Categories on estradiol.cloud</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://estradiol.cloud/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/categories/</link>
|
||||||
|
<description>Recent content in Categories on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Tutorial</title>
|
||||||
|
<link>https://estradiol.cloud/categories/tutorial/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/categories/tutorial/</guid>
|
||||||
|
<description></description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
98
public/categories/tutorial/index.html
Normal file
98
public/categories/tutorial/index.html
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>Tutorial – 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" href="https://estradiol.cloud/posts/" title="">Posts</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
<h1 id="tutorial">Tutorial</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
19
public/categories/tutorial/index.xml
Normal file
19
public/categories/tutorial/index.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Tutorial on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/categories/tutorial/</link>
|
||||||
|
<description>Recent content in Tutorial on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/categories/tutorial/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
@ -10,11 +10,11 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Headings */
|
/* Headings */
|
||||||
h1,
|
h1,
|
||||||
h2,
|
h2,
|
||||||
h3,
|
h3,
|
||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
margin: 1.5rem 0 0 0;
|
margin: 1.5rem 0 0 0;
|
||||||
@ -46,11 +46,11 @@ h4:before { content: "#### "; }
|
|||||||
h5:before { content: "##### "; }
|
h5:before { content: "##### "; }
|
||||||
h6:before { content: "###### "; }
|
h6:before { content: "###### "; }
|
||||||
|
|
||||||
h1:before,
|
h1:before,
|
||||||
h2:before,
|
h2:before,
|
||||||
h3:before,
|
h3:before,
|
||||||
h4:before,
|
h4:before,
|
||||||
h5:before,
|
h5:before,
|
||||||
h6:before {
|
h6:before {
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
}
|
}
|
||||||
@ -144,7 +144,7 @@ blockquote::before {
|
|||||||
|
|
||||||
/* Code */
|
/* Code */
|
||||||
pre,
|
pre,
|
||||||
code,
|
code,
|
||||||
kbd,
|
kbd,
|
||||||
samp {
|
samp {
|
||||||
background: var(--inner-bg) !important;
|
background: var(--inner-bg) !important;
|
||||||
@ -196,8 +196,8 @@ sup, sub {
|
|||||||
top: -0.25rem;
|
top: -0.25rem;
|
||||||
font-size: unset;
|
font-size: unset;
|
||||||
}
|
}
|
||||||
sub {
|
sub {
|
||||||
top: 0.25rem;
|
top: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tables */
|
/* Tables */
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta name="generator" content="Hugo 0.123.5"><title>estradiol.cloud – estradiol.cloud</title>
|
<meta name="generator" content="Hugo 0.123.5"><title>estradiol.cloud</title>
|
||||||
<meta name="description" content="">
|
<meta name="description" content="">
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
@ -44,7 +44,23 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section class="page__body">
|
<section class="page__body">
|
||||||
|
<main aria-role="main">
|
||||||
|
<div class="homepage-content">
|
||||||
|
|
||||||
|
it's a website!
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2>Recently</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li class="nomarker">
|
||||||
|
2024-03-04 — <a href="/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -1 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>estradiol.cloud</title><link>https://estradiol.cloud/</link><description>Recent content on estradiol.cloud</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate/><atom:link href="https://estradiol.cloud/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/</link>
|
||||||
|
<description>Recent content on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
@ -49,6 +49,9 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on estradiol.cloud</title><link>https://estradiol.cloud/posts/</link><description>Recent content in Posts on estradiol.cloud</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate/><atom:link href="https://estradiol.cloud/posts/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Posts on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/posts/</link>
|
||||||
|
<description>Recent content in Posts on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
BIN
public/posts/miniflux-rss/images/miniflux.png
Normal file
BIN
public/posts/miniflux-rss/images/miniflux.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
153
public/posts/miniflux-rss/index.html
Normal file
153
public/posts/miniflux-rss/index.html
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>Miniflux for Self-Hosted RSS – 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>, “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>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
2024-03-04
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -1 +1,35 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://estradiol.cloud/</loc><lastmod>2024-02-28T15:35:46-08:00</lastmod></url><url><loc>https://estradiol.cloud/posts/</loc><lastmod>2024-02-28T15:35:46-08:00</lastmod></url><url><loc>https://estradiol.cloud/categories/</loc></url><url><loc>https://estradiol.cloud/tags/</loc></url></urlset>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
|
<url>
|
||||||
|
<loc>https://estradiol.cloud/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/categories/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/tags/k8s/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/tags/meta/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/tags/miniflux/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/posts/miniflux-rss/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/posts/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/tags/rss/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/tags/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://estradiol.cloud/categories/tutorial/</loc>
|
||||||
|
<lastmod>2024-03-04T14:56:38-08:00</lastmod>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
||||||
|
98
public/tags/flux/index.html
Normal file
98
public/tags/flux/index.html
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>Flux – 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" href="https://estradiol.cloud/posts/" title="">Posts</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
<h1 id="flux">Flux</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
2
public/tags/flux/index.xml
Normal file
2
public/tags/flux/index.xml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Flux on estradiol.cloud</title><link>https://estradiol.cloud/tags/flux/</link><description>Recent content in Flux on estradiol.cloud</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate><atom:link href="https://estradiol.cloud/tags/flux/index.xml" rel="self" type="application/rss+xml"/><item><title>Miniflux for Self-Hosted RSS</title><link>https://estradiol.cloud/posts/miniflux-rss/</link><pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate><guid>https://estradiol.cloud/posts/miniflux-rss/</guid><description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
|
||||||
|
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:</description></item></channel></rss>
|
@ -49,6 +49,18 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/tags/k8s/">K8s</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/tags/meta/">Meta</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/tags/miniflux/">Miniflux</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/tags/rss/">Rss</a></li>
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1 +1,40 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on estradiol.cloud</title><link>https://estradiol.cloud/tags/</link><description>Recent content in Tags on estradiol.cloud</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://estradiol.cloud/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Tags on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/tags/</link>
|
||||||
|
<description>Recent content in Tags on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>K8s</title>
|
||||||
|
<link>https://estradiol.cloud/tags/k8s/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/tags/k8s/</guid>
|
||||||
|
<description></description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Meta</title>
|
||||||
|
<link>https://estradiol.cloud/tags/meta/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/tags/meta/</guid>
|
||||||
|
<description></description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Miniflux</title>
|
||||||
|
<link>https://estradiol.cloud/tags/miniflux/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/tags/miniflux/</guid>
|
||||||
|
<description></description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Rss</title>
|
||||||
|
<link>https://estradiol.cloud/tags/rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/tags/rss/</guid>
|
||||||
|
<description></description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
98
public/tags/k8s/index.html
Normal file
98
public/tags/k8s/index.html
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>K8s – 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" href="https://estradiol.cloud/posts/" title="">Posts</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
<h1 id="k8s">K8s</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
19
public/tags/k8s/index.xml
Normal file
19
public/tags/k8s/index.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>K8s on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/tags/k8s/</link>
|
||||||
|
<description>Recent content in K8s on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/tags/k8s/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
98
public/tags/meta/index.html
Normal file
98
public/tags/meta/index.html
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>Meta – 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" href="https://estradiol.cloud/posts/" title="">Posts</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
<h1 id="meta">Meta</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
19
public/tags/meta/index.xml
Normal file
19
public/tags/meta/index.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Meta on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/tags/meta/</link>
|
||||||
|
<description>Recent content in Meta on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/tags/meta/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
98
public/tags/miniflux/index.html
Normal file
98
public/tags/miniflux/index.html
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>Miniflux – 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" href="https://estradiol.cloud/posts/" title="">Posts</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
<h1 id="miniflux">Miniflux</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
19
public/tags/miniflux/index.xml
Normal file
19
public/tags/miniflux/index.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Miniflux on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/tags/miniflux/</link>
|
||||||
|
<description>Recent content in Miniflux on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/tags/miniflux/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
98
public/tags/rss/index.html
Normal file
98
public/tags/rss/index.html
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head><title>Rss – 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" href="https://estradiol.cloud/posts/" title="">Posts</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="page__body">
|
||||||
|
<h1 id="rss">Rss</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="https://estradiol.cloud/posts/miniflux-rss/">Miniflux for Self-Hosted RSS</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="aside__content">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer class="page__footer"></footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
19
public/tags/rss/index.xml
Normal file
19
public/tags/rss/index.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Rss on estradiol.cloud</title>
|
||||||
|
<link>https://estradiol.cloud/tags/rss/</link>
|
||||||
|
<description>Recent content in Rss on estradiol.cloud</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 04 Mar 2024 14:56:38 -0800</lastBuildDate>
|
||||||
|
<atom:link href="https://estradiol.cloud/tags/rss/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Miniflux for Self-Hosted RSS</title>
|
||||||
|
<link>https://estradiol.cloud/posts/miniflux-rss/</link>
|
||||||
|
<pubDate>Mon, 04 Mar 2024 14:56:38 -0800</pubDate>
|
||||||
|
<guid>https://estradiol.cloud/posts/miniflux-rss/</guid>
|
||||||
|
<description>inspired by rss-is-dead.lol, i decided to start self-hosting an RSS reader. the one i deployed is Miniflux, &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.
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:</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
Loading…
Reference in New Issue
Block a user