diff --git a/content/posts/hugo-on-k8s-nginx.md b/content/posts/hugo-on-k8s-nginx.md index 8f3761f..935392d 100644 --- a/content/posts/hugo-on-k8s-nginx.md +++ b/content/posts/hugo-on-k8s-nginx.md @@ -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. + + + +---- 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. + + + +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; + } ``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## 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 diff --git a/hugo.toml b/hugo.toml index cd64ab4..d1e7f45 100644 --- a/hugo.toml +++ b/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 \ No newline at end of file diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..e69de29 diff --git a/public/categories/index.html b/public/categories/index.html index c801c1e..65a374b 100644 --- a/public/categories/index.html +++ b/public/categories/index.html @@ -1,2 +1,95 @@ -Categories – estradiol.cloud -

Categories


\ No newline at end of file + + + + Categories – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

Categories

+ + + + + + +
+ +
+
+
+ + +

+

Making vanity projects easy since 2024

+
+ + + +
+
+
+ + +
+
+ + + +
+ + + diff --git a/public/categories/tech/index.html b/public/categories/tech/index.html new file mode 100644 index 0000000..15e4f16 --- /dev/null +++ b/public/categories/tech/index.html @@ -0,0 +1,98 @@ + + + + Tech – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

Tech

+ + + + + + +
+ +
+
+
+ + +

+

Making vanity projects easy since 2024

+
+ + + +
+
+
+ + +
+
+ + + +
+ + + diff --git a/public/categories/tech/index.xml b/public/categories/tech/index.xml new file mode 100644 index 0000000..b552851 --- /dev/null +++ b/public/categories/tech/index.xml @@ -0,0 +1,19 @@ + + + + Tech on estradiol.cloud + http://localhost:1313/categories/tech/ + Recent content in Tech on estradiol.cloud + Hugo -- gohugo.io + en-us + Wed, 28 Feb 2024 15:35:46 -0800 + + + Hugo on Kubernetes & NGINX + http://localhost:1313/posts/hugo-on-k8s-nginx/ + Wed, 28 Feb 2024 15:35:46 -0800 + http://localhost:1313/posts/hugo-on-k8s-nginx/ + 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’m running. the k8s cluster is also as a vanity project. because i don’t like software, i wanted a way to deploy my site that doesn’t involve much of it. this post is about that. Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation. + + + diff --git a/public/index.html b/public/index.html index e1feb9b..52c82eb 100644 --- a/public/index.html +++ b/public/index.html @@ -1,2 +1,87 @@ -estradiol.cloud – estradiol.cloud -

\ No newline at end of file + + + + + estradiol.cloud – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+ +
+
+
+ + +

+

Making vanity projects easy since 2024

+
+ + + +
+
+
+
+
+ + + +
+ + + diff --git a/public/posts/hugo-on-k8s-nginx/index.html b/public/posts/hugo-on-k8s-nginx/index.html index d4c57c8..af7d4c4 100644 --- a/public/posts/hugo-on-k8s-nginx/index.html +++ b/public/posts/hugo-on-k8s-nginx/index.html @@ -2,7 +2,7 @@ Hugo on Kubernetes & NGINX – estradiol.cloud - + @@ -15,7 +15,7 @@ - + @@ -52,7 +52,7 @@ is basically as a vanity project so i have some stuff to host in a Kubernetes cluster i’m running. the k8s cluster is also as a vanity project.

because i don’t like software, i wanted a way to deploy my site that -doesn’t involve much. this post is about that.

+doesn’t involve much of it. this post is about that.

Getting Started

i built my site by following the straight-forward Getting Started guide in the Hugo documentation.

@@ -60,7 +60,8 @@ guide in the Hugo documentation.

then i picked a ridiculous theme “inspired by terminal ricing aesthetics”, 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 page has this to offer:

Most of our users deploy their sites using a CI/CD workflow, where a push1 @@ -73,13 +74,15 @@ GitLab Pages, and Netlify.

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.

-

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.

+

importantly, you can’t make a post about deploying this way. everyone deploys +this way. if i deploy this way, this site will have no content.

+

it also involves some system somewhere that can run Hugo to build the site and push +it to some remote system where my cluster can reach the 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.

+ +

and hang on. let’s look at this again:

    @@ -91,94 +94,168 @@ public directory because the site is built after the push. 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?

    -

    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.

    -
    apiVersion: apps/v1
    -kind: Deployment
    +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.

    + +

    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:

    +
    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
    -

    Getting Flux’d

    +
    name: nginx-server-block + namespace: ec +data: + server-block.conf: |- + server { + listen 8080; + root /app/public; + index index.html; + } +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Getting Flux’d

    apiVersion: source.toolkit.fluxcd.io/v1beta2
     kind: HelmRepository
     metadata:
    @@ -201,9 +278,28 @@ and i’m hosting and versioning container images. i don’t want any of
     
                 
    +
    + + +

    +

    Making vanity projects easy since 2024

    +
    +

    @@ -221,33 +317,7 @@ and i’m hosting and versioning container images. i don’t want any of
    -

    - - - - - - - - - - - - - - - -
    $ echo $LANG

    - - - - - -

    -

    - - -
    +
    diff --git a/public/posts/index.html b/public/posts/index.html index 4c15421..3111c51 100644 --- a/public/posts/index.html +++ b/public/posts/index.html @@ -1,2 +1,95 @@ -Posts – estradiol.cloud -

    Posts


      \ No newline at end of file + + + + Posts – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + +
      +

      Posts

      + + + +
        + +
      + + +
      + +
      +
      +
      + + +

      +

      Making vanity projects easy since 2024

      +
      + + + +
      +
      +
      + + +
      +
      + +
      + +
      + + + diff --git a/public/tags/index.html b/public/tags/index.html index 3af56b3..cb7a52a 100644 --- a/public/tags/index.html +++ b/public/tags/index.html @@ -1,2 +1,95 @@ -Tags – estradiol.cloud -

      Tags


        \ No newline at end of file + + + + Tags – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        +

        Tags

        + + + +
          + +
        + + +
        + +
        +
        +
        + + +

        +

        Making vanity projects easy since 2024

        +
        + + + +
        +
        +
        + + +
        +
        + +
        + +
        + + + diff --git a/public/tags/k8s/index.html b/public/tags/k8s/index.html new file mode 100644 index 0000000..ae7c14e --- /dev/null +++ b/public/tags/k8s/index.html @@ -0,0 +1,98 @@ + + + + K8s – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        +

        K8s

        + + + + + + +
        + +
        +
        +
        + + +

        +

        Making vanity projects easy since 2024

        +
        + + + +
        +
        +
        + + +
        +
        + +
        + +
        + + + diff --git a/public/tags/k8s/index.xml b/public/tags/k8s/index.xml new file mode 100644 index 0000000..dca5b65 --- /dev/null +++ b/public/tags/k8s/index.xml @@ -0,0 +1,19 @@ + + + + K8s on estradiol.cloud + http://localhost:1313/tags/k8s/ + Recent content in K8s on estradiol.cloud + Hugo -- gohugo.io + en-us + Wed, 28 Feb 2024 15:35:46 -0800 + + + Hugo on Kubernetes & NGINX + http://localhost:1313/posts/hugo-on-k8s-nginx/ + Wed, 28 Feb 2024 15:35:46 -0800 + http://localhost:1313/posts/hugo-on-k8s-nginx/ + 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’m running. the k8s cluster is also as a vanity project. because i don’t like software, i wanted a way to deploy my site that doesn’t involve much. this post is about that. Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation. + + + diff --git a/public/tags/meta/index.html b/public/tags/meta/index.html new file mode 100644 index 0000000..3e5b71f --- /dev/null +++ b/public/tags/meta/index.html @@ -0,0 +1,98 @@ + + + + Meta – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        +

        Meta

        + + + + + + +
        + +
        +
        +
        + + +

        +

        Making vanity projects easy since 2024

        +
        + + + +
        +
        +
        + + +
        +
        + +
        + +
        + + + diff --git a/public/tags/meta/index.xml b/public/tags/meta/index.xml new file mode 100644 index 0000000..762e14d --- /dev/null +++ b/public/tags/meta/index.xml @@ -0,0 +1,19 @@ + + + + Meta on estradiol.cloud + http://localhost:1313/tags/meta/ + Recent content in Meta on estradiol.cloud + Hugo -- gohugo.io + en-us + Wed, 28 Feb 2024 15:35:46 -0800 + + + Hugo on Kubernetes & NGINX + http://localhost:1313/posts/hugo-on-k8s-nginx/ + Wed, 28 Feb 2024 15:35:46 -0800 + http://localhost:1313/posts/hugo-on-k8s-nginx/ + 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’m running. the k8s cluster is also as a vanity project. because i don’t like software, i wanted a way to deploy my site that doesn’t involve much. this post is about that. Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation. + + + diff --git a/public/tags/tech/index.html b/public/tags/tech/index.html new file mode 100644 index 0000000..15e4f16 --- /dev/null +++ b/public/tags/tech/index.html @@ -0,0 +1,98 @@ + + + + Tech – estradiol.cloud + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        +

        Tech

        + + + + + + +
        + +
        +
        +
        + + +

        +

        Making vanity projects easy since 2024

        +
        + + + +
        +
        +
        + + +
        +
        + +
        + +
        + + + diff --git a/public/tags/tech/index.xml b/public/tags/tech/index.xml new file mode 100644 index 0000000..84cac81 --- /dev/null +++ b/public/tags/tech/index.xml @@ -0,0 +1,19 @@ + + + + Tech on estradiol.cloud + http://localhost:1313/tags/tech/ + Recent content in Tech on estradiol.cloud + Hugo -- gohugo.io + en-us + Wed, 28 Feb 2024 15:35:46 -0800 + + + Hugo on Kubernetes & NGINX + http://localhost:1313/posts/hugo-on-k8s-nginx/ + Wed, 28 Feb 2024 15:35:46 -0800 + http://localhost:1313/posts/hugo-on-k8s-nginx/ + 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’m running. the k8s cluster is also as a vanity project. because i don’t like software, i wanted a way to deploy my site that doesn’t involve much. this post is about that. Getting Started i built my site by following the straight-forward Getting Started guide in the Hugo documentation. + + +