Compare commits

..

No commits in common. "f3161654d370828a4d17a21bd1e4443e719c86f6" and "7fba1865a0d6e7517a1b0ea6420758bba55608c6" have entirely different histories.

38 changed files with 56 additions and 75 deletions

2
.gitignore vendored
View file

@ -4,5 +4,5 @@
/package.json /package.json
/public/ /public/
/resources/ /resources/
/.env* /.env

View file

@ -6,7 +6,7 @@ draft: true
description: "This is a new post about..." description: "This is a new post about..."
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Tips # Projects, Code series: Tips # Projects, Code
tags: tags:
- 3dprinting - 3dprinting

View file

@ -8,29 +8,19 @@ numberOfRelatedPosts = 5
indexTitle = ".-. ..- -. - .. -- . - . .-. .-. --- .-." indexTitle = ".-. ..- -. - .. -- . - . .-. .-. --- .-."
[author]
name = "John Bowdre"
email = "jbowdre@omg.lol"
username = "jbowdre"
# Comments # Comments
comments = true comments = true
giscusCategory = "Announcements" utterancesRepo = "jbowdre/site-comments"
giscusCategoryId = "DIC_kwDOKKEGD84CcG89" utterancesIssueTerm = "og:title"
giscusCrossOrigin = "anonymous" utterancesTheme = "gruvbox-dark"
giscusEmitMetadata = "0"
giscusInputPosition = "bottom"
giscusLang = "en"
giscusLoading = "lazy"
giscusMapping = "og:title"
giscusReactions = "1"
giscusRepo = "jbowdre/site-comments"
giscusRepoId = "R_kgDOKKEGDw"
giscusStrict = "0"
giscusTheme = "noborder_gray"
analytics = true analytics = true
[author]
name = "John Bowdre"
email = "jbowdre@omg.lol"
username = "jbowdre"
[theme] [theme]
palette = "runtimeterror" palette = "runtimeterror"

View file

@ -1,2 +1,2 @@
comments = true comments = false
analytics = false analytics = false

View file

@ -6,7 +6,7 @@ description: "Using the power of Home Assistant automations and Ntfy push notifi
featured: true featured: true
alias: automating-security-camera-notifications-with-home-assistant-and-ntfy alias: automating-security-camera-notifications-with-home-assistant-and-ntfy
toc: true toc: true
comments: true comment: true
thumbnail: thumbnail.png thumbnail: thumbnail.png
series: Projects series: Projects
tags: tags:

View file

@ -21,7 +21,7 @@ tags:
- python - python
- api - api
- phpipam - phpipam
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I [recently wrote](/tanzu-community-edition-k8s-homelab/#a-real-workload---phpipam) about getting started with VMware's [Tanzu Community Edition](https://tanzucommunityedition.io/) and deploying [phpIPAM](https://phpipam.net/) as my first real-world Kubernetes workload. Well I've spent much of my time since then working on a script which would help to populate my phpIPAM instance with a list of networks to monitor. I [recently wrote](/tanzu-community-edition-k8s-homelab/#a-real-workload---phpipam) about getting started with VMware's [Tanzu Community Edition](https://tanzucommunityedition.io/) and deploying [phpIPAM](https://phpipam.net/) as my first real-world Kubernetes workload. Well I've spent much of my time since then working on a script which would help to populate my phpIPAM instance with a list of networks to monitor.

View file

@ -19,7 +19,7 @@ tags:
- linux - linux
- shell - shell
- regex - regex
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
It's super handy when a Linux config file is loaded with comments to tell you precisely how to configure the thing, but all those comments can really get in the way when you're trying to review the current configuration. It's super handy when a Linux config file is loaded with comments to tell you precisely how to configure the thing, but all those comments can really get in the way when you're trying to review the current configuration.

View file

@ -20,7 +20,7 @@ tags:
- chromeos - chromeos
- homelab - homelab
- iac - iac
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I've lately been trying to do more with [Salt](https://saltproject.io/) at work, but I'm still very much a novice with that tool. I thought it would be great to have a nice little portable lab environment where I could deploy a few lightweight VMs and practice managing them with Salt - without impacting any systems that are actually being used for anything. Along the way, I figured I'd leverage [HashiCorp Vagrant](https://www.vagrantup.com/) to create and manage the VMs, which would provide a declarative way to define what the VMs should look like. The VM (or even groups of VMs) would be specified in a single file, and I'd bypass all the tedious steps of creating the virtual hardware, attaching the installation media, installing the OS, and performing the initial configuration. Vagrant will help me build up, destroy, and redeploy a development environment in a simple and repeatable way. I've lately been trying to do more with [Salt](https://saltproject.io/) at work, but I'm still very much a novice with that tool. I thought it would be great to have a nice little portable lab environment where I could deploy a few lightweight VMs and practice managing them with Salt - without impacting any systems that are actually being used for anything. Along the way, I figured I'd leverage [HashiCorp Vagrant](https://www.vagrantup.com/) to create and manage the VMs, which would provide a declarative way to define what the VMs should look like. The VM (or even groups of VMs) would be specified in a single file, and I'd bypass all the tedious steps of creating the virtual hardware, attaching the installation media, installing the OS, and performing the initial configuration. Vagrant will help me build up, destroy, and redeploy a development environment in a simple and repeatable way.

View file

@ -4,7 +4,7 @@ date: 2023-11-24
description: "I moved my homelab from VMware vSphere to Proxmox VE, and my only regret is that I didn't make this change sooner." description: "I moved my homelab from VMware vSphere to Proxmox VE, and my only regret is that I didn't make this change sooner."
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Tips # Projects, Code series: Tips # Projects, Code
tags: tags:
- homelab - homelab

View file

@ -5,7 +5,7 @@ lastmod: 2023-12-22
description: "Deploying and configuring a self-hosted pub-sub notification handler, getting another server to send a notifcation when it boots, and integrating the notification handler into Home Assistant." description: "Deploying and configuring a self-hosted pub-sub notification handler, getting another server to send a notifcation when it boots, and integrating the notification handler into Home Assistant."
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Projects series: Projects
tags: tags:
- android - android

View file

@ -21,7 +21,7 @@ tags:
- tanzu - tanzu
- kubernetes - kubernetes
- shell - shell
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
Lately I've been spending some time [getting more familiar](/tanzu-community-edition-k8s-homelab/) with VMware's [Tanzu Community Edition](https://tanzucommunityedition.io/) Kubernetes distribution, but I'm still not quite familiar enough with the `tanzu` command line. If only there were a better way for me to discover the available commands for a given context and help me type them correctly... Lately I've been spending some time [getting more familiar](/tanzu-community-edition-k8s-homelab/) with VMware's [Tanzu Community Edition](https://tanzucommunityedition.io/) Kubernetes distribution, but I'm still not quite familiar enough with the `tanzu` command line. If only there were a better way for me to discover the available commands for a given context and help me type them correctly...

View file

@ -23,7 +23,7 @@ tags:
- tailscale - tailscale
- photon - photon
- vpn - vpn
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
{{% notice note "ESXi-ARM Fling v1.10 Update" %}} {{% notice note "ESXi-ARM Fling v1.10 Update" %}}
On July 20, 2022, VMware released a [major update](https://blogs.vmware.com/arm/2022/07/20/1-10/) for the ESXi-ARM Fling. Among [other fixes and improvements](https://flings.vmware.com/esxi-arm-edition#changelog), this version enables **in-place ESXi upgrades** and [adds support for the Quartz64's **on-board NIC**](https://twitter.com/jmcwhatever/status/1549935971822706688). To update, I: On July 20, 2022, VMware released a [major update](https://blogs.vmware.com/arm/2022/07/20/1-10/) for the ESXi-ARM Fling. Among [other fixes and improvements](https://flings.vmware.com/esxi-arm-edition#changelog), this version enables **in-place ESXi upgrades** and [adds support for the Quartz64's **on-board NIC**](https://twitter.com/jmcwhatever/status/1549935971822706688). To update, I:

View file

@ -23,7 +23,7 @@ tags:
- automation - automation
- rest - rest
- api - api
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I've been doing a bit of work lately to make my vRealize Automation setup more flexible and dynamic and less dependent upon hardcoded values. To that end, I thought it was probably about time to learn how to interact with the vRA REST API. I wrote this post to share what I've learned and give a quick crash course on how to start doing things with the API. I've been doing a bit of work lately to make my vRealize Automation setup more flexible and dynamic and less dependent upon hardcoded values. To that end, I thought it was probably about time to learn how to interact with the vRA REST API. I wrote this post to share what I've learned and give a quick crash course on how to start doing things with the API.

View file

@ -22,7 +22,7 @@ tags:
- cloud - cloud
- tailscale - tailscale
- selfhosting - selfhosting
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I recently started using [Obsidian](https://obsidian.md/) for keeping notes, tracking projects, and just generally organizing all the information that would otherwise pass into my brain and then fall out the other side. Unlike other similar solutions which operate entirely in *The Cloud*, Obsidian works with Markdown files stored in a local folder[^sync], which I find to be very attractive. Not only will this allow me to easily transfer my notes between apps if I find something I like better than Obsidian, but it also opens the door to using `git` to easily back up all this important information. I recently started using [Obsidian](https://obsidian.md/) for keeping notes, tracking projects, and just generally organizing all the information that would otherwise pass into my brain and then fall out the other side. Unlike other similar solutions which operate entirely in *The Cloud*, Obsidian works with Markdown files stored in a local folder[^sync], which I find to be very attractive. Not only will this allow me to easily transfer my notes between apps if I find something I like better than Obsidian, but it also opens the door to using `git` to easily back up all this important information.

View file

@ -19,7 +19,7 @@ codeLineNumbers: false # Override global value for showing of line numbers withi
tags: tags:
- meta - meta
- hugo - hugo
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
**Oops, I did it again.** **Oops, I did it again.**
@ -27,15 +27,15 @@ It wasn't [all that long ago](/virtually-potato-migrated-to-github-pages) that I
While Jekyll is built on Ruby and requires you to install and manage a Ruby environment before being able to use it to generate a site, Hugo is built on Go and requires nothing more than the `hugo` binary. That makes it much easier for me to hop between devices. Getting started with Hugo is [pretty damn simple](https://gohugo.io/getting-started/quick-start/), and Hugo provides some very cool [built-in features](https://gohugo.io/about/features/) which Jekyll would need external plugins to provide. And there are of course [plenty of lovely themes](https://themes.gohugo.io/) to help your site look its best. While Jekyll is built on Ruby and requires you to install and manage a Ruby environment before being able to use it to generate a site, Hugo is built on Go and requires nothing more than the `hugo` binary. That makes it much easier for me to hop between devices. Getting started with Hugo is [pretty damn simple](https://gohugo.io/getting-started/quick-start/), and Hugo provides some very cool [built-in features](https://gohugo.io/about/features/) which Jekyll would need external plugins to provide. And there are of course [plenty of lovely themes](https://themes.gohugo.io/) to help your site look its best.
Hugo's real claim to fame, though, is its speed. Building a site with Hugo is *much* faster than with Jekyll, and that makes it quicker to test changes locally before pushing them out onto the internet. Hugo's real claim to fame, though, is its speed. Building a site with Hugo is *much* faster than with Jekyll, and that makes it quicker to test changes locally before pushing them out onto the internet.
Jekyll was a great way for me to get started on managing my own site with a SSG, but Hugo seems to me like a more modern approach. I decided to start working on migrating Virtually Potato over to Hugo. Hugo even made it easy to import my existing content with the `hugo import jekyll` command. Jekyll was a great way for me to get started on managing my own site with a SSG, but Hugo seems to me like a more modern approach. I decided to start working on migrating Virtually Potato over to Hugo. Hugo even made it easy to import my existing content with the `hugo import jekyll` command.
After a few hours spent trying out different themes, I landed on the [Hugo Clarity theme](https://github.com/chipzoller/hugo-clarity) which is based on [VMware's Clarity Design](https://clarity.design/). This theme offers a user-selectable light/dark theme, lots of great enhancements for displaying code snippets, and a responsive mobile layout, and I just thought that incorporating some of VMware's style into this site felt somehow appropriate. It did take quite a bit of tweaking to get everything integrated and working the way I wanted it to (and to update the existing content to fit), but I learned a ton in the process so I consider that time well spent. After a few hours spent trying out different themes, I landed on the [Hugo Clarity theme](https://github.com/chipzoller/hugo-clarity) which is based on [VMware's Clarity Design](https://clarity.design/). This theme offers a user-selectable light/dark theme, lots of great enhancements for displaying code snippets, and a responsive mobile layout, and I just thought that incorporating some of VMware's style into this site felt somehow appropriate. It did take quite a bit of tweaking to get everything integrated and working the way I wanted it to (and to update the existing content to fit), but I learned a ton in the process so I consider that time well spent.
Along the way I also wanted to try out [Netlify](https://www.netlify.com/) for building and serving the site online instead of the rather bare-bones GitHub Pages that I'd been using. Like GitHub Pages, you can configure Netlify to watch a repository (on GitHub, GitLab, or Bitbucket) and it will fire off a build whenever new stuff is committed. By default, that latest build will be automatically published to your site, but Netlify also provides much more control of this process. You can pause publishing, manually publish a certain deployment, quickly rollback in case of any issues, and also preview deployments before they get published to the live site. Along the way I also wanted to try out [Netlify](https://www.netlify.com/) for building and serving the site online instead of the rather bare-bones GitHub Pages that I'd been using. Like GitHub Pages, you can configure Netlify to watch a repository (on GitHub, GitLab, or Bitbucket) and it will fire off a build whenever new stuff is committed. By default, that latest build will be automatically published to your site, but Netlify also provides much more control of this process. You can pause publishing, manually publish a certain deployment, quickly rollback in case of any issues, and also preview deployments before they get published to the live site.
Putting Netlify in front of the repositories where my site content is stored also enabled a pretty seamless transition once I was ready to actually flip the switch on the new-and-improved Virtually Potato. I had actually been using Netlify to serve the Jekyll version of this site for a week or two. When it was time to change, I disabled the auto-publish feature to pin that version of the site and then reconfigured which repository Netlify was watching. That kicked off a new (unpublished) deploy of the new Hugo site and I was able to preview it to confirm that everything looked just as it had in my local environment. Once I was satisfied I just clicked a button to start publishing the Hugo-based deploy, and the new site was live, instantly - no messing with DNS records or worrying about certificates, that was all taken care of by Netlify. Putting Netlify in front of the repositories where my site content is stored also enabled a pretty seamless transition once I was ready to actually flip the switch on the new-and-improved Virtually Potato. I had actually been using Netlify to serve the Jekyll version of this site for a week or two. When it was time to change, I disabled the auto-publish feature to pin that version of the site and then reconfigured which repository Netlify was watching. That kicked off a new (unpublished) deploy of the new Hugo site and I was able to preview it to confirm that everything looked just as it had in my local environment. Once I was satisfied I just clicked a button to start publishing the Hugo-based deploy, and the new site was live, instantly - no messing with DNS records or worrying about certificates, that was all taken care of by Netlify.
**Anyway, here we are: the new Virtually Potato, powered by Hugo and Netlify!** **Anyway, here we are: the new Virtually Potato, powered by Hugo and Netlify!**

View file

@ -24,7 +24,7 @@ tags:
- containers - containers
- iac - iac
- packer - packer
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I've been leveraging the open-source Tanzu Community Edition Kubernetes distribution for a little while now, both [in my home lab](/tanzu-community-edition-k8s-homelab) and at work, so I was disappointed to learn that VMware was [abandoning the project](https://github.com/vmware-tanzu/community-edition). TCE had been a pretty good fit for my needs, and now I needed to search for a replacement. VMware is offering a free version of Tanzu Kubernetes Grid as a replacement, but it comes with a license solely for non-commercial use so I wouldn't be able to use it at work. And I'd really like to use the same solution in both environments to make development and testing easier on me. I've been leveraging the open-source Tanzu Community Edition Kubernetes distribution for a little while now, both [in my home lab](/tanzu-community-edition-k8s-homelab) and at work, so I was disappointed to learn that VMware was [abandoning the project](https://github.com/vmware-tanzu/community-edition). TCE had been a pretty good fit for my needs, and now I needed to search for a replacement. VMware is offering a free version of Tanzu Kubernetes Grid as a replacement, but it comes with a license solely for non-commercial use so I wouldn't be able to use it at work. And I'd really like to use the same solution in both environments to make development and testing easier on me.

View file

@ -23,7 +23,7 @@ tags:
- certs - certs
- cluster - cluster
- containers - containers
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
Not long ago, I [deployed a Tanzu Community Edition Kubernetes cluster in my homelab](/tanzu-community-edition-k8s-homelab/), and then I fumbled through figuring out how to [log into it from a different device](/logging-in-tce-cluster-from-new-device/) than the one I'd used for deploying the cluster from the `tanzu` cli. That setup works great for playing with Kubernetes in my homelab but I'd love to do some Kubernetes with my team at work and I really need the ability to authenticate multiple users with domain credentials for that. Not long ago, I [deployed a Tanzu Community Edition Kubernetes cluster in my homelab](/tanzu-community-edition-k8s-homelab/), and then I fumbled through figuring out how to [log into it from a different device](/logging-in-tce-cluster-from-new-device/) than the one I'd used for deploying the cluster from the `tanzu` cli. That setup works great for playing with Kubernetes in my homelab but I'd love to do some Kubernetes with my team at work and I really need the ability to authenticate multiple users with domain credentials for that.

View file

@ -19,7 +19,7 @@ tags:
- vmware - vmware
- kubernetes - kubernetes
- tanzu - tanzu
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
When I [set up my Tanzu Community Edition environment](/tanzu-community-edition-k8s-homelab/), I did so from a Linux VM since the containerized Linux environment on my Chromebook doesn't support the `kind` bootstrap cluster used for the deployment. But now that the Kubernetes cluster is up and running, I'd like to be able to connect to it directly without the aid of a jumpbox. How do I get the appropriate cluster configuration over to my Chromebook? When I [set up my Tanzu Community Edition environment](/tanzu-community-edition-k8s-homelab/), I did so from a Linux VM since the containerized Linux environment on my Chromebook doesn't support the `kind` bootstrap cluster used for the deployment. But now that the Kubernetes cluster is up and running, I'd like to be able to connect to it directly without the aid of a jumpbox. How do I get the appropriate cluster configuration over to my Chromebook?

View file

@ -21,7 +21,7 @@ tags:
- tanzu - tanzu
- containers - containers
- security - security
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
Now that VMware [has released](https://blogs.vmware.com/vsphere/2022/01/announcing-availability-of-vsphere-7-update-3c.html) [vCenter 7.0U3c](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-vcenter-server-70u3c-release-notes.html) to resolve the Log4Shell vulnerabilities I thought it might be fun to run a security scan against the upgraded VCSA in my homelab to see how it looks. Of course, I don't actually have a security scanner in that environment so I'll need to deploy one. Now that VMware [has released](https://blogs.vmware.com/vsphere/2022/01/announcing-availability-of-vsphere-7-update-3c.html) [vCenter 7.0U3c](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-vcenter-server-70u3c-release-notes.html) to resolve the Log4Shell vulnerabilities I thought it might be fun to run a security scan against the upgraded VCSA in my homelab to see how it looks. Of course, I don't actually have a security scanner in that environment so I'll need to deploy one.

View file

@ -19,7 +19,7 @@ tags:
- vmware - vmware
- powercli - powercli
- powershell - powershell
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I recently needed to export a list of all the Linux VMs in a rather large vSphere environment spanning multiple vCenters (and the entire globe), and I wanted to include information about which virtual datacenter each VM lived in to make it easier to map VMs to their physical location. I recently needed to export a list of all the Linux VMs in a rather large vSphere environment spanning multiple vCenters (and the entire globe), and I wanted to include information about which virtual datacenter each VM lived in to make it easier to map VMs to their physical location.

View file

@ -18,7 +18,7 @@ series: Code
tags: tags:
- powershell - powershell
- windows - windows
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
We've been working lately to use [HashiCorp Packer](https://www.packer.io/) to standardize and automate our VM template builds, and we found a need to pull in all of the contents of a specific directory on an internal web server. This would be pretty simple for Linux systems using `wget -r`, but we needed to find another solution for our Windows builds. We've been working lately to use [HashiCorp Packer](https://www.packer.io/) to standardize and automate our VM template builds, and we found a need to pull in all of the contents of a specific directory on an internal web server. This would be pretty simple for Linux systems using `wget -r`, but we needed to find another solution for our Windows builds.

View file

@ -20,7 +20,7 @@ tags:
- powershell - powershell
- windows - windows
- powercli - powercli
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
{{% notice note "Fix available" %}} {{% notice note "Fix available" %}}
VMware has released a fix for this problem in the form of [ESXi 7.0 Update 3k](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-esxi-70u3k-release-notes.html#resolvedissues): VMware has released a fix for this problem in the form of [ESXi 7.0 Update 3k](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-esxi-70u3k-release-notes.html#resolvedissues):

View file

@ -19,7 +19,7 @@ tags:
- vmware - vmware
- vsphere - vsphere
- homelab - homelab
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
Way back in 2020, VMware released vSphere 7 Update 1 and introduced the new [vSphere Clustering Services (vCLS)](https://core.vmware.com/resource/introduction-vsphere-clustering-service-vcls) to improve how cluster services like the Distributed Resource Scheduler (DRS) operate. vCLS deploys lightweight agent VMs directly on the cluster being managed, and those VMs provide a decoupled and distributed control plane to offload some of the management responsibilities from the vCenter server. Way back in 2020, VMware released vSphere 7 Update 1 and introduced the new [vSphere Clustering Services (vCLS)](https://core.vmware.com/resource/introduction-vsphere-clustering-service-vcls) to improve how cluster services like the Distributed Resource Scheduler (DRS) operate. vCLS deploys lightweight agent VMs directly on the cluster being managed, and those VMs provide a decoupled and distributed control plane to offload some of the management responsibilities from the vCenter server.

View file

@ -5,7 +5,7 @@ lastmod: 2023-12-22
description: "A hasty Salt state to deploy netdata monitoring and publish it internally on my tailnet with Tailscale Serve" description: "A hasty Salt state to deploy netdata monitoring and publish it internally on my tailnet with Tailscale Serve"
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Code series: Code
tags: tags:
- homelab - homelab

View file

@ -20,7 +20,7 @@ tags:
- hugo - hugo
- meta - meta
- shell - shell
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
In case you missed [the news](/hello-hugo), I recently migrated this blog from a site built with Jekyll to one built with Hugo. One of Hugo's cool features is the concept of [Page Bundles](https://gohugo.io/content-management/page-bundles/), which _bundle_ a page's resources together in one place instead of scattering them all over the place. In case you missed [the news](/hello-hugo), I recently migrated this blog from a site built with Jekyll to one built with Hugo. One of Hugo's cool features is the concept of [Page Bundles](https://gohugo.io/content-management/page-bundles/), which _bundle_ a page's resources together in one place instead of scattering them all over the place.

View file

@ -24,7 +24,7 @@ tags:
- networking - networking
- security - security
- tailscale - tailscale
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
Not all that long ago, I shared about a [somewhat-complicated WireGuard VPN setup](/cloud-based-wireguard-vpn-remote-homelab-access/) that I had started using to replace my previous OpenVPN solution. I raved about WireGuard's speed, security, and flexible (if complex) Cryptokey Routing, but adding and managing peers with WireGuard is a fairly manual (and tedious) process. And while I thought I was pretty clever for using a WireGuard peer in GCP to maintain a secure tunnel into my home network without having to punch holes through my firewall, routing all my traffic through The Cloud wasn't really optimal[^egress_fees]. Not all that long ago, I shared about a [somewhat-complicated WireGuard VPN setup](/cloud-based-wireguard-vpn-remote-homelab-access/) that I had started using to replace my previous OpenVPN solution. I raved about WireGuard's speed, security, and flexible (if complex) Cryptokey Routing, but adding and managing peers with WireGuard is a fairly manual (and tedious) process. And while I thought I was pretty clever for using a WireGuard peer in GCP to maintain a secure tunnel into my home network without having to punch holes through my firewall, routing all my traffic through The Cloud wasn't really optimal[^egress_fees].

View file

@ -23,7 +23,7 @@ tags:
- chat - chat
- selfhosting - selfhosting
- caddy - caddy
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
**Non-technical users deserve private communications, too.** **Non-technical users deserve private communications, too.**

View file

@ -5,7 +5,7 @@ lastmod: 2023-11-13
description: "Syntax highlighting powered by the Torchlight.dev API makes it easier to dress up code blocks. Here's an overview of what I did to replace this blog's built-in Hugo highlighter (Chroma) with Torchlight." description: "Syntax highlighting powered by the Torchlight.dev API makes it easier to dress up code blocks. Here's an overview of what I did to replace this blog's built-in Hugo highlighter (Chroma) with Torchlight."
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Projects # Projects, Code series: Projects # Projects, Code
tags: tags:
- javascript - javascript

View file

@ -5,7 +5,7 @@ date: 2023-10-15
description: "Quick notes on using `systemctl edit` to override a systemd service to delay its startup." description: "Quick notes on using `systemctl edit` to override a systemd service to delay its startup."
featured: false featured: false
toc: false toc: false
comments: true comment: true
series: Tips # Projects, Code series: Tips # Projects, Code
tags: tags:
- crostini - crostini

View file

@ -22,7 +22,7 @@ tags:
- wireguard - wireguard
- containers - containers
- selfhosting - selfhosting
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
I've shared in the past about how I use [custom search engines in Chrome](/abusing-chromes-custom-search-engines-for-fun-and-profit/) as quick web shortcuts. And I may have mentioned [my love for Tailscale](/tags/tailscale/) a time or two as well. Well I recently learned of a way to combine these two passions: [Tailscale golink](https://github.com/tailscale/golink). The [golink announcement post on the Tailscale blog](https://tailscale.com/blog/golink/) offers a great overview of the service: I've shared in the past about how I use [custom search engines in Chrome](/abusing-chromes-custom-search-engines-for-fun-and-profit/) as quick web shortcuts. And I may have mentioned [my love for Tailscale](/tags/tailscale/) a time or two as well. Well I recently learned of a way to combine these two passions: [Tailscale golink](https://github.com/tailscale/golink). The [golink announcement post on the Tailscale blog](https://tailscale.com/blog/golink/) offers a great overview of the service:
> Using golink, you can create and share simple go/name links for commonly accessed websites, so that anyone in your network can access them no matter the device theyre on — without requiring browser extensions or fiddling with DNS settings. And because golink integrates with Tailscale, links are private to users in your tailnet without any separate user management, logins, or security policies. > Using golink, you can create and share simple go/name links for commonly accessed websites, so that anyone in your network can access them no matter the device theyre on — without requiring browser extensions or fiddling with DNS settings. And because golink integrates with Tailscale, links are private to users in your tailnet without any separate user management, logins, or security policies.

View file

@ -22,7 +22,7 @@ tags:
- networking - networking
- security - security
- tailscale - tailscale
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
You might remember that I'm a [pretty big fan](/secure-networking-made-simple-with-tailscale/) of [Tailscale](https://tailscale.com), which makes it easy to connect your various devices together in a secure [tailnet](https://tailscale.com/kb/1136/tailnet/), or private network. Tailscale is super simple to set up on most platforms, but you'll need to [install it manually](https://tailscale.com/download/linux/static) if there isn't a prebuilt package for your system. You might remember that I'm a [pretty big fan](/secure-networking-made-simple-with-tailscale/) of [Tailscale](https://tailscale.com), which makes it easy to connect your various devices together in a secure [tailnet](https://tailscale.com/kb/1136/tailnet/), or private network. Tailscale is super simple to set up on most platforms, but you'll need to [install it manually](https://tailscale.com/download/linux/static) if there isn't a prebuilt package for your system.

View file

@ -5,7 +5,7 @@ date: 2023-12-30
description: "Using Docker Compose to deploy containerized applications and make them available via Tailscale Serve and Tailscale Funnel" description: "Using Docker Compose to deploy containerized applications and make them available via Tailscale Serve and Tailscale Funnel"
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Projects series: Projects
tags: tags:
- containers - containers

View file

@ -5,7 +5,7 @@ date: 2023-12-20
description: "Exploring some of my favorite Tailscale addon features: SSH, Serve, and Funnel." description: "Exploring some of my favorite Tailscale addon features: SSH, Serve, and Funnel."
featured: false featured: false
toc: true toc: true
comments: true comment: true
series: Tips # Projects, Code series: Tips # Projects, Code
tags: tags:
- homelab - homelab

View file

@ -23,7 +23,7 @@ tags:
- containers - containers
- tanzu - tanzu
- homelab - homelab
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
Back in October, VMware [announced](https://tanzu.vmware.com/content/blog/vmware-tanzu-community-edition-announcement) [Tanzu Community Edition](https://tanzucommunityedition.io/) as way to provide "a full-featured, easy-to-manage Kubernetes platform thats perfect for users and learners alike." TCE bundles a bunch of open-source components together in a modular, "batteries included but swappable" way: Back in October, VMware [announced](https://tanzu.vmware.com/content/blog/vmware-tanzu-community-edition-announcement) [Tanzu Community Edition](https://tanzucommunityedition.io/) as way to provide "a full-featured, easy-to-manage Kubernetes platform thats perfect for users and learners alike." TCE bundles a bunch of open-source components together in a modular, "batteries included but swappable" way:

View file

@ -19,7 +19,7 @@ tags:
- vmware - vmware
- homelab - homelab
- vsphere - vsphere
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
You may have heard that there's a new vSphere release out in the wild - [vSphere 8, which just reached Initial Availability this week](https://advocacy.vmware.com/Article/Redirect/9cfbc1b1-207f-4885-a520-cc0bfafcd6c0?uc=197618&g=2d17264e-593a-492d-8d91-3a2155e835f1&f=3104867). Upgrading the vCenter in my single-host homelab is a very straightforward task, and using the included Lifecycle Manager would make quick work of patching a cluster of hosts... but things get a little trickier with a single host. I could write the installer ISO to a USB drive, boot the host off of that, and go through the install interactively, but what if physical access to the host is kind of inconvenient? You may have heard that there's a new vSphere release out in the wild - [vSphere 8, which just reached Initial Availability this week](https://advocacy.vmware.com/Article/Redirect/9cfbc1b1-207f-4885-a520-cc0bfafcd6c0?uc=197618&g=2d17264e-593a-492d-8d91-3a2155e835f1&f=3104867). Upgrading the vCenter in my single-host homelab is a very straightforward task, and using the included Lifecycle Manager would make quick work of patching a cluster of hosts... but things get a little trickier with a single host. I could write the installer ISO to a USB drive, boot the host off of that, and go through the install interactively, but what if physical access to the host is kind of inconvenient?

View file

@ -19,7 +19,7 @@ tags:
- vmware - vmware
- vsphere - vsphere
- python - python
comments: true # Disable comment if false. comment: true # Disable comment if false.
--- ---
VMware vCenter does wonders for abstracting away the layers of complexity involved in managing a large virtual infrastructure, but when something goes wrong it can be challenging to find exactly where the problem lies. And it can be even harder to proactively address potential issues before they occur. VMware vCenter does wonders for abstracting away the layers of complexity involved in managing a large virtual infrastructure, but when something goes wrong it can be challenging to find exactly where the problem lies. And it can be even harder to proactively address potential issues before they occur.

View file

@ -6,7 +6,7 @@ timeless: true
draft: false draft: false
description: "This blog has migrated from virtuallypotato.com to runtimeterror.dev." description: "This blog has migrated from virtuallypotato.com to runtimeterror.dev."
toc: false toc: false
comments: true comment: true
tags: tags:
- meta - meta
--- ---

View file

@ -1,21 +1,12 @@
{{ if isset site.Params "giscusrepo" }} {{ if .Site.Params.utterancesRepo }}
<br> <br>
<div class="post_comments"> <div class="post_comments">
<script src="https://giscus.runtimeterror.dev/client.js" <script src="https://utteranc.es/client.js"
data-repo="{{ .Site.Params.giscusRepo }}" repo="{{.Site.Params.utterancesRepo}}"
data-repo-id="{{ .Site.Params.giscusRepoId }}" issue-term="{{.Site.Params.utterancesIssueTerm | default "pathname"}}"
data-category="{{ .Site.Params.giscusCategory }}" theme="{{.Site.Params.utterancesTheme | default "github-dark-orange"}}"
data-category-id="{{ .Site.Params.giscusCategoryId }}" crossorigin="anonymous"
data-mapping="{{ .Site.Params.giscusMapping }}" async>
data-strict="{{ .Site.Params.giscusStrict }}"
data-reactions-enabled="{{ .Site.Params.giscusReactions }}"
data-emit-metadata="{{ .Site.Params.giscusEmitMetadata }}"
data-input-position="{{ .Site.Params.giscusInputPosition }}"
data-theme="{{ .Site.Params.giscusTheme }}"
data-lang="{{ .Site.Params.giscusLang }}"
data-loading="{{ .Site.Params.giscusLoading }}"
crossorigin="{{ .Site.Params.giscusCrossOrigin }}"
async>
</script> </script>
</div> </div>
{{ end }} {{ end }}