stub some content

This commit is contained in:
tamsin woo 2024-02-28 22:49:15 -08:00
parent 6673b7605e
commit a11bfa58ec
16 changed files with 1239 additions and 219 deletions

View File

@ -2,6 +2,9 @@
title = 'Hugo on Kubernetes & NGINX'
date = 2024-02-28T15:35:46-08:00
draft = true
series = ['wtf']
categories = ['Tech']
tags = ['meta', 'k8s']
+++
i decided to make a website. a static one. this one. with [Hugo][hugo]. this
@ -10,7 +13,7 @@ is basically as a vanity project so i have some stuff to host in a
project.
because i don't like software, i wanted a way to deploy my site that
doesn't involve much. this post is about that.
doesn't involve much of it. this post is about that.
## Getting Started
@ -22,7 +25,8 @@ then i picked a ridiculous theme ["inspired by terminal ricing aesthetics"][riso
installing it like `git submodule add https://github.com/joeroe/risotto.git themes/risotto; echo "theme = 'risotto'" >> hugo.toml`. i appreciate the culinary naming choice.
at this point, my website is basically finished (i also changed the title in `hugo.toml`).
i probably won't be putting much on it, so there's no point fussing with other details.
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:
@ -34,14 +38,18 @@ about deployment, the guide's _[Basic Usage][hugo-deploy]_ page has this to offe
> 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 depoying this way. _everyone_ deploys
this way.
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 it. i definitely already need
Hugo installed on my workstation if i'm going to post anything here (unlikely), so
now i'm running Hugo in two places. there's definitely going to be other complex
nonsense like webhooks involved.
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 `public/` output. i definitely
already need Hugo installed on my workstation if i'm going to post anything here
(unlikely), so now i'm running Hugo in two places. there's surely going to be
other complex nonsense like webhooks involved.
<!-- diagram ?? -->
----
and hang on. let's look at this again:
@ -54,99 +62,180 @@ _actual content_ into version control? couldn't be me.
## Getting Static
what if instead i pushed my site to a git repository exactly as i intend to serve it?
then i could shell into my webserver, pull the site, and _nifty-galifty!_ isn't this
then i could shell into my web server, pull the site, and _nifty-galifty!_ isn't this
the way it has [always been done][worm]?
one problem is that i don't have a webserver, i have a _container orchestration
one problem is that i don't have a web server, i have a _container orchestration
system_. there are several upsides to this (few of which are relevant for my project)
but it demands i get a bit more clever. i _could_ run a little pipeline that builds a
container wrapping my static site, pushes it to a registry somewhere so my deployments
can pull it, all ready to go. but now i've got _software_ again; build stages and webhooks
and i'm hosting and versioning container images. i don't want any of this.
but it also means that _somehow_ my content needs to end up in a container, and i
don't want that container to need to retain state across restarts or replicas.
i _could_ run a little pipeline that builds a container wrapping my static site,
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 ?? -->
i don't want any of this.
---
instead, i'd like to deploy a popular stock container from a public registry and
deliver my content to it continuously.
as a minimal version of this, i could do:
```yaml
apiVersion: apps/v1
kind: Deployment
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: ec
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: /app
name: staticsite
- name: git-pull
image: bitnami/git
command:
- /bin/bash
- -ec
- |
while true; do
cd /app && git -c safe.directory=/app pull origin trunk
sleep 60
done
volumeMounts:
- mountPath: /app
name: staticsite
initContainers:
- name: git-clone
image: bitnami/git
command:
- /bin/bash
- -ec
- |
git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /tmp/app
cd /tmp/app && git sparse-checkout init --cone
git sparse-checkout set public && git checkout
rm -rf /app && mv /tmp/app /app
volumeMounts:
- mountPath: /app
name: staticsite
volumes:
- emptyDir: {}
name: staticsite
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/instance: estradiol-cloud
app.kubernetes.io/name: nginx
name: web-nginx
namespace: estradiol-cloud
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: estradiol-cloud
app.kubernetes.io/name: nginx
template:
metadata:
labels:
app.kubernetes.io/instance: estradiol-cloud
app.kubernetes.io/name: nginx
spec:
containers:
- name: git-repo-syncer
image: docker.io/bitnami/git:2.43.2-debian-12-r2
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- -ec
- |
while true; do
cd /app && git -c safe.directory=/app pull origin trunk
sleep 60
done
volumeMounts:
- mountPath: /app
name: staticsite
- name: nginx
image: docker.io/bitnami/nginx:1.25.4-debian-12-r2
imagePullPolicy: IfNotPresent
env:
- name: NGINX_HTTP_PORT_NUMBER
value: "8080"
livenessProbe:
tcpSocket:
port: http
readinessProbe:
tcpSocket:
port: http
ports:
- containerPort: 8080
name: http
protocol: TCP
volumeMounts:
- mountPath: /opt/bitnami/nginx/conf/server_blocks
name: nginx-server-block
- mountPath: /app
name: staticsite
initContainers:
- name: git-clone-repository
image: docker.io/bitnami/git:2.43.2-debian-12-r2
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- -ec
- |
[[ -f "/opt/bitnami/scripts/git/entrypoint.sh" ]] && source "/opt/bitnami/scripts/git/entrypoint.sh"
git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /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/
volumeMounts:
- mountPath: /app
name: staticsite
restartPolicy: Always
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 420
name: web-nginx-server-block
name: nginx-server-block
- emptyDir: {}
name: staticsite
name: nginx-server-block
namespace: ec
data:
server-block.conf: |-
server {
listen 8080;
root /app/public;
index index.html;
}
```
<!-- ```yaml -->
<!-- apiVersion: apps/v1 -->
<!-- kind: Deployment -->
<!-- metadata: -->
<!-- labels: -->
<!-- app.kubernetes.io/instance: estradiol-cloud -->
<!-- app.kubernetes.io/name: nginx -->
<!-- name: web-nginx -->
<!-- namespace: estradiol-cloud -->
<!-- spec: -->
<!-- replicas: 1 -->
<!-- selector: -->
<!-- matchLabels: -->
<!-- app.kubernetes.io/instance: estradiol-cloud -->
<!-- app.kubernetes.io/name: nginx -->
<!-- template: -->
<!-- metadata: -->
<!-- labels: -->
<!-- app.kubernetes.io/instance: estradiol-cloud -->
<!-- app.kubernetes.io/name: nginx -->
<!-- spec: -->
<!-- containers: -->
<!-- - name: git-repo-syncer -->
<!-- image: docker.io/bitnami/git:2.43.2-debian-12-r2 -->
<!-- imagePullPolicy: IfNotPresent -->
<!-- command: -->
<!-- - /bin/bash -->
<!-- - -ec -->
<!-- - | -->
<!-- while true; do -->
<!-- cd /app && git -c safe.directory=/app pull origin trunk -->
<!-- sleep 60 -->
<!-- done -->
<!-- volumeMounts: -->
<!-- - mountPath: /app -->
<!-- name: staticsite -->
<!-- - name: nginx -->
<!-- image: docker.io/bitnami/nginx:1.25.4-debian-12-r2 -->
<!-- imagePullPolicy: IfNotPresent -->
<!-- env: -->
<!-- - name: NGINX_HTTP_PORT_NUMBER -->
<!-- value: "8080" -->
<!-- livenessProbe: -->
<!-- tcpSocket: -->
<!-- port: http -->
<!-- readinessProbe: -->
<!-- tcpSocket: -->
<!-- port: http -->
<!-- ports: -->
<!-- - containerPort: 8080 -->
<!-- name: http -->
<!-- protocol: TCP -->
<!-- volumeMounts: -->
<!-- - mountPath: /opt/bitnami/nginx/conf/server_blocks -->
<!-- name: nginx-server-block -->
<!-- - mountPath: /app -->
<!-- name: staticsite -->
<!-- initContainers: -->
<!-- - name: git-clone-repository -->
<!-- image: docker.io/bitnami/git:2.43.2-debian-12-r2 -->
<!-- imagePullPolicy: IfNotPresent -->
<!-- command: -->
<!-- - /bin/bash -->
<!-- - -ec -->
<!-- - | -->
<!-- [[ -f "/opt/bitnami/scripts/git/entrypoint.sh" ]] && source "/opt/bitnami/scripts/git/entrypoint.sh" -->
<!-- git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /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/ -->
<!-- volumeMounts: -->
<!-- - mountPath: /app -->
<!-- name: staticsite -->
<!-- restartPolicy: Always -->
<!-- terminationGracePeriodSeconds: 30 -->
<!-- volumes: -->
<!-- - configMap: -->
<!-- defaultMode: 420 -->
<!-- name: web-nginx-server-block -->
<!-- name: nginx-server-block -->
<!-- - emptyDir: {} -->
<!-- name: staticsite -->
<!-- ``` -->
## Getting Flux'd
```yaml
@ -170,10 +259,11 @@ spec:
```
[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-pv]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
[risotto]: https://github.com/joeroe/risotto
[worm]: https://www.mikecurato.com/worm-loves-worm

View File

@ -2,8 +2,36 @@ baseURL = 'https://estradiol.cloud/'
languageCode = 'en-us'
title = 'estradiol.cloud'
theme = 'risotto'
paginate = 3
[params]
[params.about]
title = ""
description = "Making vanity projects easy since 2024"
[[params.socialLinks]]
icon = "fa-brands fa-mastodon"
title = "Hachyderm"
url = "https://hachyderm.io/@no_reply"
[[params.socialLinks]]
icon = "fa-brands fa-gitlab"
title = "GitLab"
url = "https://gitlab.com/no_reply"
[[params.socialLinks]]
icon = "fa-brands fa-github"
title = "GitHub"
url = "https://github.com/no-reply"
[params.theme]
palette = "material"
[menus]
[[menus.main]]
name = 'Posts'
pageRef = '/posts'
weight = 20
[minify]
disableHTML = true

View File

View File

@ -1,2 +1,95 @@
<!doctype html><html lang=en><head><title>Categories &ndash; estradiol.cloud</title>
<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/base16-dark.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=categories>Categories</h1><ul></ul></section><section class=page__aside><div class=aside__about><ul class=aside__social-links></ul></div><hr><div class=aside__content></div></section><footer class=page__footer><p><br><span class=active>$ echo $LANG<br><b></b></span><br></p><br><br><p class=copyright></p><p class=advertisement>Powered by <a href=https://gohugo.io/>hugo</a> and <a href=https://github.com/joeroe/risotto>risotto</a>.</p></footer></div></body></html>
<!DOCTYPE html>
<html lang="en">
<head><title>Categories &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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="categories">Categories</h1>
<ul>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View File

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><title>Tech &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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="http://localhost:1313/css/palettes/material.css">
<link rel="stylesheet" href="http://localhost:1313/css/risotto.css">
<link rel="stylesheet" href="http://localhost:1313/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="http://localhost:1313/" class="page__logo-inner">estradiol.cloud</a></h1></li>
<li class="main-nav__item"><a class="nav-main-item" href="http://localhost:1313/posts/" title="">Posts</a></li>
</ul>
</nav>
</header>
<section class="page__body">
<h1 id="tech">Tech</h1>
<ul>
<li><a href="http://localhost:1313/posts/hugo-on-k8s-nginx/">Hugo on Kubernetes &amp; NGINX</a></li>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View 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>Tech on estradiol.cloud</title>
<link>http://localhost:1313/categories/tech/</link>
<description>Recent content in Tech on estradiol.cloud</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Wed, 28 Feb 2024 15:35:46 -0800</lastBuildDate>
<atom:link href="http://localhost:1313/categories/tech/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Hugo on Kubernetes &amp; NGINX</title>
<link>http://localhost:1313/posts/hugo-on-k8s-nginx/</link>
<pubDate>Wed, 28 Feb 2024 15:35:46 -0800</pubDate>
<guid>http://localhost:1313/posts/hugo-on-k8s-nginx/</guid>
<description>i decided to make a website. a static one. this one. with Hugo. this is basically as a vanity project so i have some stuff to host in a Kubernetes cluster i&amp;rsquo;m running. the k8s cluster is also as a vanity project.&#xA;because i don&amp;rsquo;t like software, i wanted a way to deploy my site that doesn&amp;rsquo;t involve much of it. this post is about that.&#xA;Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
</item>
</channel>
</rss>

View File

@ -1,2 +1,87 @@
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.123.5"><title>estradiol.cloud &ndash; estradiol.cloud</title>
<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/base16-dark.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></section><section class=page__aside><div class=aside__about><ul class=aside__social-links></ul></div><hr><div class=aside__content></div></section><footer class=page__footer><p><br><span class=active>$ echo $LANG<br><b></b></span><br></p><br><br><p class=copyright></p><p class=advertisement>Powered by <a href=https://gohugo.io/>hugo</a> and <a href=https://github.com/joeroe/risotto>risotto</a>.</p></footer></div></body></html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="Hugo 0.123.5"><title>estradiol.cloud &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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">
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View File

@ -2,7 +2,7 @@
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><title>Hugo on Kubernetes &amp; NGINX &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8"/>
@ -15,7 +15,7 @@
<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="http://localhost:1313/css/palettes/base16-dark.css">
<link rel="stylesheet" href="http://localhost:1313/css/palettes/material.css">
<link rel="stylesheet" href="http://localhost:1313/css/risotto.css">
<link rel="stylesheet" href="http://localhost:1313/css/custom.css">
@ -52,7 +52,7 @@ is basically as a vanity project so i have some stuff to host in a
<a href="https://kubernetes.io">Kubernetes</a> cluster i&rsquo;m running. the k8s cluster is also as a vanity
project.</p>
<p>because i don&rsquo;t like software, i wanted a way to deploy my site that
doesn&rsquo;t involve much. this post is about that.</p>
doesn&rsquo;t involve much of it. this post is about that.</p>
<h2 id="getting-started">Getting Started</h2>
<p>i built my site by following the straight-forward <em><a href="https://gohugo.io/getting-started">Getting Started</a></em>
guide in the Hugo documentation.</p>
@ -60,7 +60,8 @@ guide in the Hugo documentation.</p>
then i picked a ridiculous theme <a href="https://github.com/joeroe/risotto">&ldquo;inspired by terminal ricing aesthetics&rdquo;</a>,
installing it like <code>git submodule add https://github.com/joeroe/risotto.git themes/risotto; echo &quot;theme = 'risotto'&quot; &gt;&gt; hugo.toml</code>. i appreciate the culinary naming choice.</p>
<p>at this point, my website is basically finished (i also changed the title in <code>hugo.toml</code>).
i probably won&rsquo;t be putting much on it, so there&rsquo;s no point fussing with other details.</p>
i probably won&rsquo;t be putting anything on it, so there&rsquo;s no point fiddling with other
details.</p>
<p>about deployment, the guide&rsquo;s <em><a href="https://gohugo.io/getting-started/usage/#deploy-your-site">Basic Usage</a></em> page has this to offer:</p>
<blockquote>
<p>Most of our users deploy their sites using a CI/CD workflow, where a push<sup>1</sup>
@ -73,13 +74,15 @@ GitLab Pages, and Netlify.</p>
public directory because the site is built <em>after</em> the push.</li>
</ol>
</blockquote>
<p>importantly, you can&rsquo;t make a post about depoying this way. <em>everyone</em> deploys
this way.</p>
<p>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 it. i definitely already need
Hugo installed on my workstation if i&rsquo;m going to post anything here (unlikely), so
now i&rsquo;m running Hugo in two places. there&rsquo;s definitely going to be other complex
nonsense like webhooks involved.</p>
<p>importantly, you can&rsquo;t make a post about deploying this way. <em>everyone</em> deploys
this way. if <em>i</em> deploy this way, this site will have no content.</p>
<p>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 <code>public/</code> output. i definitely
already need Hugo installed on my workstation if i&rsquo;m going to post anything here
(unlikely), so now i&rsquo;m running Hugo in two places. there&rsquo;s surely going to be
other complex nonsense like webhooks involved.</p>
<!-- raw HTML omitted -->
<hr>
<p>and hang on. let&rsquo;s look at this again:</p>
<blockquote>
<ol>
@ -91,94 +94,168 @@ public directory because the site is built <em>after</em> the push.</li>
<em>actual content</em> into version control? couldn&rsquo;t be me.</p>
<h2 id="getting-static">Getting Static</h2>
<p>what if instead i pushed my site to a git repository exactly as i intend to serve it?
then i could shell into my webserver, pull the site, and <em>nifty-galifty!</em> isn&rsquo;t this
then i could shell into my web server, pull the site, and <em>nifty-galifty!</em> isn&rsquo;t this
the way it has <a href="https://www.mikecurato.com/worm-loves-worm">always been done</a>?</p>
<p>one problem is that i don&rsquo;t have a webserver, i have a <em>container orchestration
<p>one problem is that i don&rsquo;t have a web server, i have a <em>container orchestration
system</em>. there are several upsides to this (few of which are relevant for my project)
but it demands i get a bit more clever. i <em>could</em> run a little pipeline that builds a
container wrapping my static site, pushes it to a registry somewhere so my deployments
can pull it, all ready to go. but now i&rsquo;ve got <em>software</em> again; build stages and webhooks
and i&rsquo;m hosting and versioning container images. i don&rsquo;t want any of this.</p>
<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">apiVersion</span>: <span style="color:#ae81ff">apps/v1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">kind</span>: <span style="color:#ae81ff">Deployment</span>
but it also means that <em>somehow</em> my content needs to end up in a container, and i
don&rsquo;t want that container to need to retain state across restarts or replicas.</p>
<p>i <em>could</em> run a little pipeline that builds a container wrapping my static site,
pushes it to a registry somewhere my deployments can pull it. all ready to go.
but now i&rsquo;ve got <em>software</em> again: build stages and webhooks and to make matters
worse, now i&rsquo;m hosting and versioning container images.</p>
<!-- raw HTML omitted -->
<p>i don&rsquo;t want any of this.</p>
<hr>
<p>instead, i&rsquo;d like to deploy a popular stock container from a public registry and
deliver my content to it continuously.</p>
<p>as a minimal version of this, i could do:</p>
<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">apiVersion</span>: <span style="color:#ae81ff">v1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">kind</span>: <span style="color:#ae81ff">Pod</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">metadata</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">namespace</span>: <span style="color:#ae81ff">ec</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">labels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/instance</span>: <span style="color:#ae81ff">estradiol-cloud</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">spec</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">containers</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">image</span>: <span style="color:#ae81ff">nginx:1.25.4</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">ports</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">containerPort</span>: <span style="color:#ae81ff">80</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">git-pull</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">image</span>: <span style="color:#ae81ff">bitnami/git</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">command</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">/bin/bash</span>
</span></span><span style="display:flex;"><span> - -<span style="color:#ae81ff">ec</span>
</span></span><span style="display:flex;"><span> - |<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> while true; do
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> cd /app &amp;&amp; git -c safe.directory=/app pull origin trunk
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sleep 60
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> done</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">initContainers</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">git-clone</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">image</span>: <span style="color:#ae81ff">bitnami/git</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">command</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">/bin/bash</span>
</span></span><span style="display:flex;"><span> - -<span style="color:#ae81ff">ec</span>
</span></span><span style="display:flex;"><span> - |<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /tmp/app
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> cd /tmp/app &amp;&amp; git sparse-checkout init --cone
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> git sparse-checkout set public &amp;&amp; git checkout
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> rm -rf /app &amp;&amp; mv /tmp/app /app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumes</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">emptyDir</span>: {}
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>---
</span></span><span style="display:flex;"><span><span style="color:#f92672">apiVersion</span>: <span style="color:#ae81ff">v1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">kind</span>: <span style="color:#ae81ff">ConfigMap</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">metadata</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">labels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/instance</span>: <span style="color:#ae81ff">estradiol-cloud</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">web-nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">namespace</span>: <span style="color:#ae81ff">estradiol-cloud</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">spec</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">replicas</span>: <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">selector</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">matchLabels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/instance</span>: <span style="color:#ae81ff">estradiol-cloud</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">template</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">metadata</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">labels</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/instance</span>: <span style="color:#ae81ff">estradiol-cloud</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">app.kubernetes.io/name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">spec</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">containers</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">git-repo-syncer</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">image</span>: <span style="color:#ae81ff">docker.io/bitnami/git:2.43.2-debian-12-r2</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">imagePullPolicy</span>: <span style="color:#ae81ff">IfNotPresent</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">command</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">/bin/bash</span>
</span></span><span style="display:flex;"><span> - -<span style="color:#ae81ff">ec</span>
</span></span><span style="display:flex;"><span> - |<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> while true; do
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> cd /app &amp;&amp; git -c safe.directory=/app pull origin trunk
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sleep 60
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> done</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">nginx</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">image</span>: <span style="color:#ae81ff">docker.io/bitnami/nginx:1.25.4-debian-12-r2</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">imagePullPolicy</span>: <span style="color:#ae81ff">IfNotPresent</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">env</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">NGINX_HTTP_PORT_NUMBER</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">value</span>: <span style="color:#e6db74">&#34;8080&#34;</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">livenessProbe</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">tcpSocket</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">port</span>: <span style="color:#ae81ff">http</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">readinessProbe</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">tcpSocket</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">port</span>: <span style="color:#ae81ff">http</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">ports</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">containerPort</span>: <span style="color:#ae81ff">8080</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">http</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">protocol</span>: <span style="color:#ae81ff">TCP</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/opt/bitnami/nginx/conf/server_blocks</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">nginx-server-block</span>
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">initContainers</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">git-clone-repository</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">image</span>: <span style="color:#ae81ff">docker.io/bitnami/git:2.43.2-debian-12-r2</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">imagePullPolicy</span>: <span style="color:#ae81ff">IfNotPresent</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">command</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">/bin/bash</span>
</span></span><span style="display:flex;"><span> - -<span style="color:#ae81ff">ec</span>
</span></span><span style="display:flex;"><span> - |<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> [[ -f &#34;/opt/bitnami/scripts/git/entrypoint.sh&#34; ]] &amp;&amp; source &#34;/opt/bitnami/scripts/git/entrypoint.sh&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> git clone https://code.estradiol.cloud/tamsin/estradiol.cloud.git --no-checkout --branch trunk /tmp/app
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> [[ &#34;$?&#34; -eq 0 ]] &amp;&amp; cd /tmp/app &amp;&amp; git sparse-checkout init --cone &amp;&amp; git sparse-checkout set public &amp;&amp; git checkout &amp;&amp; shopt -s dotglob &amp;&amp; rm -rf /app/* &amp;&amp; mv /tmp/app/* /app/</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumeMounts</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">mountPath</span>: <span style="color:#ae81ff">/app</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">restartPolicy</span>: <span style="color:#ae81ff">Always</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">terminationGracePeriodSeconds</span>: <span style="color:#ae81ff">30</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">volumes</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">configMap</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">defaultMode</span>: <span style="color:#ae81ff">420</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">web-nginx-server-block</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">nginx-server-block</span>
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">emptyDir</span>: {}
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">staticsite</span>
</span></span></code></pre></div><h2 id="getting-fluxd">Getting Flux&rsquo;d</h2>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">nginx-server-block</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">namespace</span>: <span style="color:#ae81ff">ec</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">data</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">server-block.conf</span>: |-<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> server {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> listen 8080;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> root /app/public;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> index index.html;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> }</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<h2 id="getting-fluxd">Getting Flux&rsquo;d</h2>
<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">apiVersion</span>: <span style="color:#ae81ff">source.toolkit.fluxcd.io/v1beta2</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">kind</span>: <span style="color:#ae81ff">HelmRepository</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">metadata</span>:
@ -201,9 +278,28 @@ and i&rsquo;m hosting and versioning container images. i don&rsquo;t want any of
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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>
@ -221,33 +317,7 @@ and i&rsquo;m hosting and versioning container images. i don&rsquo;t want any of
</div>
</section>
<footer class="page__footer"><p>
<br/><span class="active">$ echo $LANG<br/><b></b></span><br/>
</p>
<br /><br />
<p class="copyright"></p>
<p class="advertisement">Powered by <a href="https://gohugo.io/">hugo</a> and <a href="https://github.com/joeroe/risotto">risotto</a>.</p>
</footer>
<footer class="page__footer"></footer>
</div>
</body>

View File

@ -1,2 +1,95 @@
<!doctype html><html lang=en><head><title>Posts &ndash; estradiol.cloud</title>
<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/base16-dark.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><h1 id=posts>Posts</h1><ul></ul></section><section class=page__aside><div class=aside__about><ul class=aside__social-links></ul></div><hr><div class=aside__content></div></section><footer class=page__footer><p><br><span class=active>$ echo $LANG<br><b></b></span><br></p><br><br><p class=copyright></p><p class=advertisement>Powered by <a href=https://gohugo.io/>hugo</a> and <a href=https://github.com/joeroe/risotto>risotto</a>.</p></footer></div></body></html>
<!DOCTYPE html>
<html lang="en">
<head><title>Posts &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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">
<h1 id="posts">Posts</h1>
<ul>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View File

@ -1,2 +1,95 @@
<!doctype html><html lang=en><head><title>Tags &ndash; estradiol.cloud</title>
<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/base16-dark.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=tags>Tags</h1><ul></ul></section><section class=page__aside><div class=aside__about><ul class=aside__social-links></ul></div><hr><div class=aside__content></div></section><footer class=page__footer><p><br><span class=active>$ echo $LANG<br><b></b></span><br></p><br><br><p class=copyright></p><p class=advertisement>Powered by <a href=https://gohugo.io/>hugo</a> and <a href=https://github.com/joeroe/risotto>risotto</a>.</p></footer></div></body></html>
<!DOCTYPE html>
<html lang="en">
<head><title>Tags &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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="tags">Tags</h1>
<ul>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View File

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><title>K8s &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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="http://localhost:1313/css/palettes/material.css">
<link rel="stylesheet" href="http://localhost:1313/css/risotto.css">
<link rel="stylesheet" href="http://localhost:1313/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="http://localhost:1313/" class="page__logo-inner">estradiol.cloud</a></h1></li>
<li class="main-nav__item"><a class="nav-main-item" href="http://localhost:1313/posts/" title="">Posts</a></li>
</ul>
</nav>
</header>
<section class="page__body">
<h1 id="k8s">K8s</h1>
<ul>
<li><a href="http://localhost:1313/posts/hugo-on-k8s-nginx/">Hugo on Kubernetes &amp; NGINX</a></li>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

19
public/tags/k8s/index.xml Normal file
View 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>http://localhost:1313/tags/k8s/</link>
<description>Recent content in K8s on estradiol.cloud</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Wed, 28 Feb 2024 15:35:46 -0800</lastBuildDate>
<atom:link href="http://localhost:1313/tags/k8s/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Hugo on Kubernetes &amp; NGINX</title>
<link>http://localhost:1313/posts/hugo-on-k8s-nginx/</link>
<pubDate>Wed, 28 Feb 2024 15:35:46 -0800</pubDate>
<guid>http://localhost:1313/posts/hugo-on-k8s-nginx/</guid>
<description>i decided to make a website. a static one. this one. with Hugo. this is basically as a vanity project so i have some stuff to host in a Kubernetes cluster i&amp;rsquo;m running. the k8s cluster is also as a vanity project.&#xA;because i don&amp;rsquo;t like software, i wanted a way to deploy my site that doesn&amp;rsquo;t involve much. this post is about that.&#xA;Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
</item>
</channel>
</rss>

View File

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><title>Meta &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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="http://localhost:1313/css/palettes/material.css">
<link rel="stylesheet" href="http://localhost:1313/css/risotto.css">
<link rel="stylesheet" href="http://localhost:1313/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="http://localhost:1313/" class="page__logo-inner">estradiol.cloud</a></h1></li>
<li class="main-nav__item"><a class="nav-main-item" href="http://localhost:1313/posts/" title="">Posts</a></li>
</ul>
</nav>
</header>
<section class="page__body">
<h1 id="meta">Meta</h1>
<ul>
<li><a href="http://localhost:1313/posts/hugo-on-k8s-nginx/">Hugo on Kubernetes &amp; NGINX</a></li>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View 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>http://localhost:1313/tags/meta/</link>
<description>Recent content in Meta on estradiol.cloud</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Wed, 28 Feb 2024 15:35:46 -0800</lastBuildDate>
<atom:link href="http://localhost:1313/tags/meta/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Hugo on Kubernetes &amp; NGINX</title>
<link>http://localhost:1313/posts/hugo-on-k8s-nginx/</link>
<pubDate>Wed, 28 Feb 2024 15:35:46 -0800</pubDate>
<guid>http://localhost:1313/posts/hugo-on-k8s-nginx/</guid>
<description>i decided to make a website. a static one. this one. with Hugo. this is basically as a vanity project so i have some stuff to host in a Kubernetes cluster i&amp;rsquo;m running. the k8s cluster is also as a vanity project.&#xA;because i don&amp;rsquo;t like software, i wanted a way to deploy my site that doesn&amp;rsquo;t involve much. this post is about that.&#xA;Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
</item>
</channel>
</rss>

View File

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><title>Tech &ndash; estradiol.cloud</title>
<meta name="description" content="Making vanity projects easy since 2024">
<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="http://localhost:1313/css/palettes/material.css">
<link rel="stylesheet" href="http://localhost:1313/css/risotto.css">
<link rel="stylesheet" href="http://localhost:1313/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="http://localhost:1313/" class="page__logo-inner">estradiol.cloud</a></h1></li>
<li class="main-nav__item"><a class="nav-main-item" href="http://localhost:1313/posts/" title="">Posts</a></li>
</ul>
</nav>
</header>
<section class="page__body">
<h1 id="tech">Tech</h1>
<ul>
<li><a href="http://localhost:1313/posts/hugo-on-k8s-nginx/">Hugo on Kubernetes &amp; NGINX</a></li>
</ul>
</section>
<section class="page__aside">
<div class="aside__about">
<div class="aside__about">
<h1 class="about__title"></h1>
<p class="about__description">Making vanity projects easy since 2024</p>
</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">
</div>
</section>
<footer class="page__footer"></footer>
</div>
</body>
</html>

View 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>Tech on estradiol.cloud</title>
<link>http://localhost:1313/tags/tech/</link>
<description>Recent content in Tech on estradiol.cloud</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Wed, 28 Feb 2024 15:35:46 -0800</lastBuildDate>
<atom:link href="http://localhost:1313/tags/tech/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Hugo on Kubernetes &amp; NGINX</title>
<link>http://localhost:1313/posts/hugo-on-k8s-nginx/</link>
<pubDate>Wed, 28 Feb 2024 15:35:46 -0800</pubDate>
<guid>http://localhost:1313/posts/hugo-on-k8s-nginx/</guid>
<description>i decided to make a website. a static one. this one. with Hugo. this is basically as a vanity project so i have some stuff to host in a Kubernetes cluster i&amp;rsquo;m running. the k8s cluster is also as a vanity project.&#xA;because i don&amp;rsquo;t like software, i wanted a way to deploy my site that doesn&amp;rsquo;t involve much. this post is about that.&#xA;Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
</item>
</channel>
</rss>