stub some content
This commit is contained in:
parent
6673b7605e
commit
a11bfa58ec
@ -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
|
||||
|
28
hugo.toml
28
hugo.toml
@ -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
|
0
layouts/partials/footer.html
Normal file
0
layouts/partials/footer.html
Normal file
@ -1,2 +1,95 @@
|
||||
<!doctype html><html lang=en><head><title>Categories – 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 – 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>
|
||||
</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>
|
||||
|
98
public/categories/tech/index.html
Normal file
98
public/categories/tech/index.html
Normal file
@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>Tech – 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 & 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>
|
||||
</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/tech/index.xml
Normal file
19
public/categories/tech/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>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 & 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&rsquo;m running. the k8s cluster is also as a vanity project.
because i don&rsquo;t like software, i wanted a way to deploy my site that doesn&rsquo;t involve much of it. this post is about that.
Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
@ -1,2 +1,87 @@
|
||||
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.123.5"><title>estradiol.cloud – 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 – 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>
|
||||
</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,7 +2,7 @@
|
||||
<html lang="en">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>Hugo on Kubernetes & NGINX – 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’m running. the k8s cluster is also as a vanity
|
||||
project.</p>
|
||||
<p>because i don’t like software, i wanted a way to deploy my site that
|
||||
doesn’t involve much. this post is about that.</p>
|
||||
doesn’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">“inspired by terminal ricing aesthetics”</a>,
|
||||
installing it like <code>git submodule add https://github.com/joeroe/risotto.git themes/risotto; echo "theme = 'risotto'" >> 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’t be putting much on it, so there’s no point fussing with other details.</p>
|
||||
i probably won’t be putting anything on it, so there’s no point fiddling with other
|
||||
details.</p>
|
||||
<p>about deployment, the guide’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’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’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.</p>
|
||||
<p>importantly, you can’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’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.</p>
|
||||
<!-- raw HTML omitted -->
|
||||
<hr>
|
||||
<p>and hang on. let’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’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’t this
|
||||
then i could shell into my web server, pull the site, and <em>nifty-galifty!</em> isn’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’t have a webserver, i have a <em>container orchestration
|
||||
<p>one problem is that i don’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’ve got <em>software</em> again; build stages and webhooks
|
||||
and i’m hosting and versioning container images. i don’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’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’ve got <em>software</em> again: build stages and webhooks and to make matters
|
||||
worse, now i’m hosting and versioning container images.</p>
|
||||
<!-- raw HTML omitted -->
|
||||
<p>i don’t want any of this.</p>
|
||||
<hr>
|
||||
<p>instead, i’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 && 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 && git sparse-checkout init --cone
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> git sparse-checkout set public && git checkout
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> rm -rf /app && 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 && 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">"8080"</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 "/opt/bitnami/scripts/git/entrypoint.sh" ]] && source "/opt/bitnami/scripts/git/entrypoint.sh"
|
||||
</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"> [[ "$?" -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/</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’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’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’m hosting and versioning container images. i don’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>
|
||||
</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>
|
||||
@ -221,33 +317,7 @@ and i’m hosting and versioning container images. i don’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>
|
||||
|
@ -1,2 +1,95 @@
|
||||
<!doctype html><html lang=en><head><title>Posts – 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 – 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>
|
||||
</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>
|
||||
|
@ -1,2 +1,95 @@
|
||||
<!doctype html><html lang=en><head><title>Tags – 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 – 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>
|
||||
</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>
|
||||
|
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><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>K8s – 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 & 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>
|
||||
</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>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 & 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&rsquo;m running. the k8s cluster is also as a vanity project.
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.
Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</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><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>Meta – 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 & 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>
|
||||
</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>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 & 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&rsquo;m running. the k8s cluster is also as a vanity project.
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.
Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
98
public/tags/tech/index.html
Normal file
98
public/tags/tech/index.html
Normal file
@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><title>Tech – 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 & 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>
|
||||
</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/tech/index.xml
Normal file
19
public/tags/tech/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>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 & 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&rsquo;m running. the k8s cluster is also as a vanity project.
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.
Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
Loading…
Reference in New Issue
Block a user