diff --git a/.gitignore b/.gitignore index e49b424..d5f97c8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ /package.json /public/ /resources/ -/.env +/.env* diff --git a/archetypes/default.md b/archetypes/default.md index 6d2cec7..f5d8663 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -6,7 +6,7 @@ draft: true description: "This is a new post about..." featured: false toc: true -comment: true +comments: true series: Tips # Projects, Code tags: - 3dprinting diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml index a58ec42..c6155e5 100644 --- a/config/_default/hugo.toml +++ b/config/_default/hugo.toml @@ -1,7 +1,7 @@ baseURL = "https://runtimeterror.dev" theme = "risotto" title = "runtimeterror" -copyright = "© 2018-2023 [runtimeterror](https://runtimeterror.dev)" +copyright = "© 2024 John Bowdre" paginate = 10 languageCode = "en" DefaultContentLanguage = "en" diff --git a/config/_default/params.toml b/config/_default/params.toml index 4060a19..a329dfa 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -5,18 +5,32 @@ mainSections = ["posts"] fallBackOgImage = "images/broken-computer.png" numberOfFeaturedPosts = 5 numberOfRelatedPosts = 5 -author = "jbowdre" indexTitle = ".-. ..- -. - .. -- . - . .-. .-. --- .-." # Comments comments = true -utterancesRepo = "jbowdre/site-comments" -utterancesIssueTerm = "og:title" -utterancesTheme = "gruvbox-dark" +giscusCategory = "Announcements" +giscusCategoryId = "DIC_kwDOKKEGD84CcG89" +giscusCrossOrigin = "anonymous" +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 +[author] +name = "John Bowdre" +email = "jbowdre@omg.lol" +username = "jbowdre" + [theme] palette = "runtimeterror" @@ -135,7 +149,7 @@ url = "https://social.lol/@jbowdre" [[socialLinks]] icon = "fa-solid fa-heart" title = "omg.lol" -url = "https://jbowdre.omg.lol" +url = "https://jbowdre.lol" [[socialLinks]] icon = "fa-solid fa-comments" diff --git a/config/local/params.toml b/config/local/params.toml index c8a1743..3b5ce10 100644 --- a/config/local/params.toml +++ b/config/local/params.toml @@ -1,2 +1,2 @@ -comments = false +comments = true analytics = false \ No newline at end of file diff --git a/content/about.md b/content/about.md index bcc45a5..ad4599f 100644 --- a/content/about.md +++ b/content/about.md @@ -17,21 +17,21 @@ I'm now part of a small platform engineering team within that same large corpora On my off time, I tinker with new [projects](/series/projects) in my little homelab (and share some of those adventures here). I also help out on Google's product support forums as a [Product Expert](https://productexperts.withgoogle.com/what-it-is), where I support Pixel phones, earbuds, and watches, as well as Chromebooks (primarily with Linux-related queries). Helping users troubleshoot their issues scratches my problem-solving itch, and it keeps me connected with some really great like-minded tech enthusiasts. -On weekends, I race my daily-driven 2014 Subaru BRZ in local [autocross events](https://www.youtube.com/playlist?list=PLwzr4uKY-x-EwCv-rWNGefdikuW6Oy9O_) or wrench on my 1974 Volkswagen Karmann Ghia. +On weekends, I race my daily-driven 2014 Subaru BRZ in local [autocross events](https://l.runtimeterror.dev/my-autox-vids) or wrench on my 1974 Volkswagen Karmann Ghia. And in the free time I have left, I game on my Steam Deck. See what I've been up to on: - [GitHub](https://github.com/jbowdre) - [CounterSocial](https://counter.social/@john_b) -- [status.lol](https://status.lol/jbowdre) -- [/now](https://jbowdre.omg.lol/now) +- [status.lol](https://status.jbowdre.lol) +- [/now](https://now.jbowdre.lol) Connect with me via: - [SimpleX Chat](/simplex/) - [Matrix](https://matrix.to/#/@jbowdre:omg.lol) - [Electronic Mail](mailto:jbowdre@omg.lol) - - [PGP: 613F B70C 4FA7 A077](https://home.omg.lol/keychain/jbowdre/pgp) + - [PGP: 613F B70C 4FA7 A077](https://l.runtimeterror.dev/pgp) [^1]: Congrats? And also, *thank you.* diff --git a/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md b/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md index 73e39e5..33c72e1 100644 --- a/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md +++ b/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md @@ -6,7 +6,7 @@ description: "Using the power of Home Assistant automations and Ntfy push notifi featured: true alias: automating-security-camera-notifications-with-home-assistant-and-ntfy toc: true -comment: true +comments: true thumbnail: thumbnail.png series: Projects tags: diff --git a/content/posts/bulk-import-vsphere-dvportgroups-to-phpipam/index.md b/content/posts/bulk-import-vsphere-dvportgroups-to-phpipam/index.md index 2bffb0f..0ab3752 100644 --- a/content/posts/bulk-import-vsphere-dvportgroups-to-phpipam/index.md +++ b/content/posts/bulk-import-vsphere-dvportgroups-to-phpipam/index.md @@ -21,7 +21,7 @@ tags: - python - api - phpipam -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/cat-file-without-comments/index.md b/content/posts/cat-file-without-comments/index.md index d52ff77..4043737 100644 --- a/content/posts/cat-file-without-comments/index.md +++ b/content/posts/cat-file-without-comments/index.md @@ -19,7 +19,7 @@ tags: - linux - shell - regex -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/create-vms-chromebook-hashicorp-vagrant/index.md b/content/posts/create-vms-chromebook-hashicorp-vagrant/index.md index 2cf189a..3526ee6 100644 --- a/content/posts/create-vms-chromebook-hashicorp-vagrant/index.md +++ b/content/posts/create-vms-chromebook-hashicorp-vagrant/index.md @@ -20,7 +20,7 @@ tags: - chromeos - homelab - iac -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/ditching-vsphere-for-proxmox/index.md b/content/posts/ditching-vsphere-for-proxmox/index.md index 0ba9c91..33f1ac6 100644 --- a/content/posts/ditching-vsphere-for-proxmox/index.md +++ b/content/posts/ditching-vsphere-for-proxmox/index.md @@ -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." featured: false toc: true -comment: true +comments: true series: Tips # Projects, Code tags: - homelab diff --git a/content/posts/easy-push-notifications-with-ntfy/index.md b/content/posts/easy-push-notifications-with-ntfy/index.md index 7779017..6be35c6 100644 --- a/content/posts/easy-push-notifications-with-ntfy/index.md +++ b/content/posts/easy-push-notifications-with-ntfy/index.md @@ -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." featured: false toc: true -comment: true +comments: true series: Projects tags: - android diff --git a/content/posts/enable-tanzu-cli-auto-completion-bash-zsh/index.md b/content/posts/enable-tanzu-cli-auto-completion-bash-zsh/index.md index c55bede..6ad851f 100644 --- a/content/posts/enable-tanzu-cli-auto-completion-bash-zsh/index.md +++ b/content/posts/enable-tanzu-cli-auto-completion-bash-zsh/index.md @@ -21,7 +21,7 @@ tags: - tanzu - kubernetes - shell -comment: true # Disable comment if false. +comments: 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... diff --git a/content/posts/esxi-arm-on-quartz64/index.md b/content/posts/esxi-arm-on-quartz64/index.md index a023937..bdec745 100644 --- a/content/posts/esxi-arm-on-quartz64/index.md +++ b/content/posts/esxi-arm-on-quartz64/index.md @@ -23,7 +23,7 @@ tags: - tailscale - photon - vpn -comment: true # Disable comment if false. +comments: true # Disable comment if false. --- {{% 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: diff --git a/content/posts/free-serverless-url-shortener-google-cloud-run/index.md b/content/posts/free-serverless-url-shortener-google-cloud-run/index.md index 9681623..731362c 100644 --- a/content/posts/free-serverless-url-shortener-google-cloud-run/index.md +++ b/content/posts/free-serverless-url-shortener-google-cloud-run/index.md @@ -57,7 +57,7 @@ Once that's done, I can try my redirect again - and, after a brief moment, it su ![Successful redirect](20210820_successful_redirect.png) ### Link custom domain -The whole point of this project is to *shorten* URLs, but I haven't done that yet. I'll want to link in my `go.bowdre.net` domain to use that in place of the rather unwieldy `https://sheets-url-shortener-vrw7x6wdzq-uc.a.run.app`. I do that by going back to the [Cloud Run console](https://console.cloud.google.com/run) and selecting the option at the top to **Manage Custom Domains**. +The whole point of this project is to *shorten* URLs, but I haven't done that yet. I'll want to link in my `go.bowdre.net` domain to use that in place of the rather unwieldy `https://sheets-url-shortener-somestring-uc.a.run.app`. I do that by going back to the [Cloud Run console](https://console.cloud.google.com/run) and selecting the option at the top to **Manage Custom Domains**. ![Manage custom domains](20210820_manage_custom_domain.png) I can then use the **Add Mapping** button, select my `sheets-url-shortener` service, choose one of my verified domains (which I *think* are already verified since they're registered through Google Domains with the same account), and then specify the desired subdomain. @@ -73,8 +73,6 @@ It took a while for the domain mapping to go live once I've updated the record. Once it did finally update, I was able to hit `https://go.bowdre.net` to get the error/landing page, complete with a valid SSL cert: ![Successful error!](20210820_landing_page.png) -And testing [go.bowdre.net/ghia](https://go.bowdre.net/ghia) works as well! - ### Outro I'm very pleased with how this quick little project turned out. Managing my shortened links with a Google Sheet is quite convenient, and I really like the complete lack of tracking or analytics. Plus I'm a sucker for an excuse to use a cloud technology I haven't played a lot with yet. @@ -82,9 +80,9 @@ And now I can hand out handy-dandy short links! | Link | Description| | --- | --- | -| [go.bowdre.net/coso](https://go.bowdre.net/coso) | Follow me on CounterSocial | -| [go.bowdre.net/conedoge](https://go.bowdre.net/conedoge) | 2014 Subaru BRZ autocross videos | -| [go.bowdre.net/cooltechshit](https://go.bowdre.net/cooltechshit) | A collection of cool tech shit (references and resources) | -| [go.bowdre.net/stuffiuse](https://go.bowdre.net/stuffiuse) | Things that I use (and think you should use too) | -| [go.bowdre.net/shorterer](https://go.bowdre.net/shorterer) | This post! | +| [go.bowdre.net/coso](https://l.runtimeterror.dev/coso) | Follow me on CounterSocial | +| [go.bowdre.net/conedoge](https://l.runtimeterror.dev/conedoge) | 2014 Subaru BRZ autocross videos | +| [go.bowdre.net/cooltechshit](https://l.runtimeterror.dev/cooltechshit) | A collection of cool tech shit (references and resources) | +| [go.bowdre.net/stuffiuse](https://l.runtimeterror.dev/stuffiuse) | Things that I use (and think you should use too) | +| [go.bowdre.net/shorterer](https://l.runtimeterror.dev/shorterer) | This post! | diff --git a/content/posts/getting-started-vra-rest-api/index.md b/content/posts/getting-started-vra-rest-api/index.md index a988983..0c076ec 100644 --- a/content/posts/getting-started-vra-rest-api/index.md +++ b/content/posts/getting-started-vra-rest-api/index.md @@ -23,7 +23,7 @@ tags: - automation - rest - api -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/gitea-self-hosted-git-server/index.md b/content/posts/gitea-self-hosted-git-server/index.md index 274ba0d..143dc96 100644 --- a/content/posts/gitea-self-hosted-git-server/index.md +++ b/content/posts/gitea-self-hosted-git-server/index.md @@ -22,7 +22,7 @@ tags: - cloud - tailscale - selfhosting -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/hello-hugo/index.md b/content/posts/hello-hugo/index.md index 8d7b89f..3820f97 100644 --- a/content/posts/hello-hugo/index.md +++ b/content/posts/hello-hugo/index.md @@ -19,7 +19,7 @@ codeLineNumbers: false # Override global value for showing of line numbers withi tags: - meta - hugo -comment: true # Disable comment if false. +comments: true # Disable comment if false. --- **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. -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!** diff --git a/content/posts/k8s-on-vsphere-node-template-with-packer/index.md b/content/posts/k8s-on-vsphere-node-template-with-packer/index.md index 0aa2645..021cc6e 100644 --- a/content/posts/k8s-on-vsphere-node-template-with-packer/index.md +++ b/content/posts/k8s-on-vsphere-node-template-with-packer/index.md @@ -24,7 +24,7 @@ tags: - containers - iac - packer -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/ldaps-authentication-tanzu-community-edition/index.md b/content/posts/ldaps-authentication-tanzu-community-edition/index.md index 71d8e43..2845292 100644 --- a/content/posts/ldaps-authentication-tanzu-community-edition/index.md +++ b/content/posts/ldaps-authentication-tanzu-community-edition/index.md @@ -23,7 +23,7 @@ tags: - certs - cluster - containers -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/logging-in-tce-cluster-from-new-device/index.md b/content/posts/logging-in-tce-cluster-from-new-device/index.md index 7f0d0e4..c123a86 100644 --- a/content/posts/logging-in-tce-cluster-from-new-device/index.md +++ b/content/posts/logging-in-tce-cluster-from-new-device/index.md @@ -19,7 +19,7 @@ tags: - vmware - kubernetes - tanzu -comment: true # Disable comment if false. +comments: 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? diff --git a/content/posts/nessus-essentials-on-tanzu-community-edition/index.md b/content/posts/nessus-essentials-on-tanzu-community-edition/index.md index ac59199..ba0cf71 100644 --- a/content/posts/nessus-essentials-on-tanzu-community-edition/index.md +++ b/content/posts/nessus-essentials-on-tanzu-community-edition/index.md @@ -21,7 +21,7 @@ tags: - tanzu - containers - security -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/powercli-list-linux-vms-and-datacenter-locations/index.md b/content/posts/powercli-list-linux-vms-and-datacenter-locations/index.md index 70efbcc..29d5d4e 100644 --- a/content/posts/powercli-list-linux-vms-and-datacenter-locations/index.md +++ b/content/posts/powercli-list-linux-vms-and-datacenter-locations/index.md @@ -19,7 +19,7 @@ tags: - vmware - powercli - powershell -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/powershell-download-web-folder-contents/index.md b/content/posts/powershell-download-web-folder-contents/index.md index a972b26..a937ac8 100644 --- a/content/posts/powershell-download-web-folder-contents/index.md +++ b/content/posts/powershell-download-web-folder-contents/index.md @@ -18,7 +18,7 @@ series: Code tags: - powershell - windows -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/psa-microsoft-kb5022842-breaks-ws2022-secure-boot/index.md b/content/posts/psa-microsoft-kb5022842-breaks-ws2022-secure-boot/index.md index 1c5b6cf..c117bb3 100644 --- a/content/posts/psa-microsoft-kb5022842-breaks-ws2022-secure-boot/index.md +++ b/content/posts/psa-microsoft-kb5022842-breaks-ws2022-secure-boot/index.md @@ -20,7 +20,7 @@ tags: - powershell - windows - powercli -comment: true # Disable comment if false. +comments: true # Disable comment if false. --- {{% 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): diff --git a/content/posts/removing-recreating-vcls-vms/index.md b/content/posts/removing-recreating-vcls-vms/index.md index 948fdd8..354189d 100644 --- a/content/posts/removing-recreating-vcls-vms/index.md +++ b/content/posts/removing-recreating-vcls-vms/index.md @@ -19,7 +19,7 @@ tags: - vmware - vsphere - homelab -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/salt-state-netdata-tailscale/index.md b/content/posts/salt-state-netdata-tailscale/index.md index 27d3d6d..4b12172 100644 --- a/content/posts/salt-state-netdata-tailscale/index.md +++ b/content/posts/salt-state-netdata-tailscale/index.md @@ -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" featured: false toc: true -comment: true +comments: true series: Code tags: - homelab diff --git a/content/posts/script-to-convert-posts-to-hugo-page-bundles/index.md b/content/posts/script-to-convert-posts-to-hugo-page-bundles/index.md index 33f93de..322c839 100644 --- a/content/posts/script-to-convert-posts-to-hugo-page-bundles/index.md +++ b/content/posts/script-to-convert-posts-to-hugo-page-bundles/index.md @@ -20,7 +20,7 @@ tags: - hugo - meta - shell -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/secure-networking-made-simple-with-tailscale/index.md b/content/posts/secure-networking-made-simple-with-tailscale/index.md index c0dbe8c..1d22617 100644 --- a/content/posts/secure-networking-made-simple-with-tailscale/index.md +++ b/content/posts/secure-networking-made-simple-with-tailscale/index.md @@ -24,7 +24,7 @@ tags: - networking - security - tailscale -comment: true # Disable comment if false. +comments: 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]. diff --git a/content/posts/snikket-private-xmpp-chat-on-oracle-cloud-free-tier/index.md b/content/posts/snikket-private-xmpp-chat-on-oracle-cloud-free-tier/index.md index 342ceac..6051bca 100644 --- a/content/posts/snikket-private-xmpp-chat-on-oracle-cloud-free-tier/index.md +++ b/content/posts/snikket-private-xmpp-chat-on-oracle-cloud-free-tier/index.md @@ -23,7 +23,7 @@ tags: - chat - selfhosting - caddy -comment: true # Disable comment if false. +comments: true # Disable comment if false. --- **Non-technical users deserve private communications, too.** diff --git a/content/posts/spotlight-on-torchlight/index.md b/content/posts/spotlight-on-torchlight/index.md index 0613df1..4dd2f0c 100644 --- a/content/posts/spotlight-on-torchlight/index.md +++ b/content/posts/spotlight-on-torchlight/index.md @@ -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." featured: false toc: true -comment: true +comments: true series: Projects # Projects, Code tags: - javascript diff --git a/content/posts/systemctl-edit-delay-service-startup/index.md b/content/posts/systemctl-edit-delay-service-startup/index.md index a3e38ff..d4df138 100644 --- a/content/posts/systemctl-edit-delay-service-startup/index.md +++ b/content/posts/systemctl-edit-delay-service-startup/index.md @@ -5,7 +5,7 @@ date: 2023-10-15 description: "Quick notes on using `systemctl edit` to override a systemd service to delay its startup." featured: false toc: false -comment: true +comments: true series: Tips # Projects, Code tags: - crostini diff --git a/content/posts/tailscale-golink-private-shortlinks-tailnet/index.md b/content/posts/tailscale-golink-private-shortlinks-tailnet/index.md index f70d418..32eae50 100644 --- a/content/posts/tailscale-golink-private-shortlinks-tailnet/index.md +++ b/content/posts/tailscale-golink-private-shortlinks-tailnet/index.md @@ -22,7 +22,7 @@ tags: - wireguard - containers - selfhosting -comment: true # Disable comment if false. +comments: 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: > 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 they’re 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. diff --git a/content/posts/tailscale-on-vmware-photon/index.md b/content/posts/tailscale-on-vmware-photon/index.md index 263c3c0..86ff567 100644 --- a/content/posts/tailscale-on-vmware-photon/index.md +++ b/content/posts/tailscale-on-vmware-photon/index.md @@ -22,7 +22,7 @@ tags: - networking - security - tailscale -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/tailscale-serve-docker-compose-sidecar/index.md b/content/posts/tailscale-serve-docker-compose-sidecar/index.md index 735c753..e06e37b 100644 --- a/content/posts/tailscale-serve-docker-compose-sidecar/index.md +++ b/content/posts/tailscale-serve-docker-compose-sidecar/index.md @@ -1,11 +1,11 @@ --- title: "Tailscale Serve in a Docker Compose Sidecar" date: 2023-12-30 -# lastmod: 2023-12-28 +lastmod: 2024-01-01 description: "Using Docker Compose to deploy containerized applications and make them available via Tailscale Serve and Tailscale Funnel" featured: false toc: true -comment: true +comments: true series: Projects tags: - containers @@ -120,6 +120,7 @@ There's also a [sample `docker-compose.yml`](https://github.com/jbowdre/tailscal services: tailscale: image: ghcr.io/jbowdre/tailscale-docker:latest + restart: unless-stopped container_name: tailscale environment: TS_AUTHKEY: ${TS_AUTHKEY:?err} # from https://login.tailscale.com/admin/settings/authkeys @@ -133,6 +134,7 @@ services: - ./ts_data:/var/lib/tailscale/ # the mount point should match TS_STATE_DIR myservice: image: nginxdemos/hello + restart: unless-stopped network_mode: "service:tailscale" # use the tailscale network service's network ``` @@ -211,6 +213,7 @@ And I can add the corresponding `docker-compose.yml` to go with it: services: tailscale: # [tl! focus:start] image: ghcr.io/jbowdre/tailscale-docker:latest + restart: unless-stopped container_name: cyberchef-tailscale environment: TS_AUTHKEY: ${TS_AUTHKEY:?err} @@ -286,6 +289,7 @@ I adapted the [example `docker-compose.yml`](https://miniflux.app/docs/dacker.ht services: tailscale: # [tl! focus:start] image: ghcr.io/jbowdre/tailscale-docker:latest + restart: unless-stopped container_name: miniflux-tailscale environment: TS_AUTHKEY: ${TS_AUTHKEY:?err} @@ -299,6 +303,7 @@ services: - ./ts_data:/var/lib/tailscale/ # [tl! focus:end] miniflux: image: miniflux/miniflux:latest + restart: unless-stopped container_name: miniflux depends_on: db: @@ -312,6 +317,7 @@ services: network_mode: "service:tailscale" # [tl! focus] db: image: postgres:15 + restart: unless-stopped container_name: miniflux-db environment: - POSTGRES_USER=${DB_USER} diff --git a/content/posts/tailscale-ssh-serve-funnel/index.md b/content/posts/tailscale-ssh-serve-funnel/index.md index 2169d56..ab73d8b 100644 --- a/content/posts/tailscale-ssh-serve-funnel/index.md +++ b/content/posts/tailscale-ssh-serve-funnel/index.md @@ -5,7 +5,7 @@ date: 2023-12-20 description: "Exploring some of my favorite Tailscale addon features: SSH, Serve, and Funnel." featured: false toc: true -comment: true +comments: true series: Tips # Projects, Code tags: - homelab diff --git a/content/posts/tanzu-community-edition-k8s-homelab/index.md b/content/posts/tanzu-community-edition-k8s-homelab/index.md index f63a9cc..65fa9dc 100644 --- a/content/posts/tanzu-community-edition-k8s-homelab/index.md +++ b/content/posts/tanzu-community-edition-k8s-homelab/index.md @@ -23,7 +23,7 @@ tags: - containers - tanzu - homelab -comment: true # Disable comment if false. +comments: 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 that’s perfect for users and learners alike." TCE bundles a bunch of open-source components together in a modular, "batteries included but swappable" way: diff --git a/content/posts/upgrading-standalone-vsphere-host-with-esxcli/index.md b/content/posts/upgrading-standalone-vsphere-host-with-esxcli/index.md index 32f78d1..7d89bc1 100644 --- a/content/posts/upgrading-standalone-vsphere-host-with-esxcli/index.md +++ b/content/posts/upgrading-standalone-vsphere-host-with-esxcli/index.md @@ -19,7 +19,7 @@ tags: - vmware - homelab - vsphere -comment: true # Disable comment if false. +comments: 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? diff --git a/content/posts/using-vsphere-diagnostic-tool-fling/index.md b/content/posts/using-vsphere-diagnostic-tool-fling/index.md index 0f636fa..e981d2c 100644 --- a/content/posts/using-vsphere-diagnostic-tool-fling/index.md +++ b/content/posts/using-vsphere-diagnostic-tool-fling/index.md @@ -19,7 +19,7 @@ tags: - vmware - vsphere - python -comment: true # Disable comment if false. +comments: 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. diff --git a/content/posts/virtuallypotato-runtimeterror/index.md b/content/posts/virtuallypotato-runtimeterror/index.md index 2d167f0..27046d5 100644 --- a/content/posts/virtuallypotato-runtimeterror/index.md +++ b/content/posts/virtuallypotato-runtimeterror/index.md @@ -6,7 +6,7 @@ timeless: true draft: false description: "This blog has migrated from virtuallypotato.com to runtimeterror.dev." toc: false -comment: true +comments: true tags: - meta --- diff --git a/content/simplex.md b/content/simplex.md index 055fecc..3bdf23f 100644 --- a/content/simplex.md +++ b/content/simplex.md @@ -8,7 +8,7 @@ showReadTime = false timeless = true title = "SimpleX Chat" +++ -*You can **[contact me on SimpleX Chat](https://simplex.chat/contact/#/?v=1-2&smp=smp%3A%2F%2FkYx5LmVD9FMM8hJN4BQqL4WmeUNZn8ipXsX2UkBoiHE%3D%40smp.vpota.to%2FFLy56WLZ79Xda3gW0BjUWDotP6uaparF%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAZTkRAbrxefYZbb5Qypb9BXfuN0X0tzSPEv682DkNcn0%253D)** by clicking that link or scanning the QR code below.* +*You can **[contact me on SimpleX Chat](https://l.runtimeterror.dev/simplex-chat-invite)** by clicking that link or scanning the QR code below.* ![](/images/simplex-invite.png) @@ -32,7 +32,7 @@ Just add these in the SimpleX app at **Settings > Network & servers > SMP server | | | | --- | --- | -| [![](https://status.vpota.to/api/badge/6/uptime)](https://status.vpota.to/status/simplex) | [[details](https://jbowdre.url.lol/smp_status)] | +| [![](https://status.vpota.to/api/badge/6/uptime)](https://status.vpota.to/status/simplex) | [[details](https://l.runtimeterror.dev/smp_status)] | --- @@ -42,7 +42,7 @@ Just add these in the SimpleX app at **Settings > Network & servers > SMP server | | | | --- | --- | -| [![](https://status.vpota.to/api/badge/4/uptime)](https://status.vpota.to/status/simplex) | [[details](https://jbowdre.url.lol/smp1_status)] | +| [![](https://status.vpota.to/api/badge/4/uptime)](https://status.vpota.to/status/simplex) | [[details](https://l.runtimeterror.dev/smp1_status)] | --- @@ -52,4 +52,4 @@ Just add these in the SimpleX app at **Settings > Network & servers > SMP server | | | | --- | --- | -| [![](https://status.vpota.to/api/badge/5/uptime)](https://status.vpota.to/status/simplex) | [[details](https://jbowdre.url.lol/smp2_status)] | +| [![](https://status.vpota.to/api/badge/5/uptime)](https://status.vpota.to/status/simplex) | [[details](https://l.runtimeterror.dev/smp2_status)] | diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml index 02cb455..6a7f770 100644 --- a/layouts/_default/rss.xml +++ b/layouts/_default/rss.xml @@ -11,44 +11,36 @@ {{- $pages = $pages | first $limit -}} {{- end -}} {{- printf "" | safeHTML }} - + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} {{ .Permalink }} Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} Hugo -- gohugo.io{{ with .Site.LanguageCode }} - {{.}}{{end}}{{ with .Site.Author.email }} - {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} - {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ with .Site.Copyright }} {{.}}{{end}}{{ if not .Date.IsZero }} {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} {{- with .OutputFormats.Get "RSS" -}} {{ printf "" .Permalink .MediaType | safeHTML }} {{- end -}} + + {{ .Site.Params.fallBackOgImage | absURL }} + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ range $pages }} - {{ .Title }} + {{ .Title | plainify }} {{ .Permalink }} {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} - {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ with .Site.Params.Author.name }}{{.}}{{ end }} + {{ with .Params.series }}{{ . | lower }}{{ end }} + {{ range (.GetTerms "tags") }} + {{ .LinkTitle }}{{ end }} {{ .Permalink }} - - {{ if ne site.Params.rss_summary false }} - {{ if .Params.summary }} - {{ .Params.summary | html }} - {{ else if .Params.abstract }} - {{ .Params.abstract | html }} - {{ else if .Summary }} - {{ .Summary | html }} - {{ end }} - {{ if site.Params.rss_summary_read_more_link }} - {{ $trans := i18n "read_more" -}} - {{ printf "

%s

" .RelPermalink $trans | html }} - {{ end }} - {{ else }} - {{ .Content | html }} - {{ end }} -
+ {{ .Summary | plainify }}
{{ end }}
diff --git a/layouts/partials/about.html b/layouts/partials/about.html index 4260bb1..29869da 100644 --- a/layouts/partials/about.html +++ b/layouts/partials/about.html @@ -4,7 +4,7 @@

{{ .title }}  

{{ partial "tagline.html" . }}
- {{ site.Params.Author }} + {{ site.Params.Author.username }} {{ end }}