This commit is contained in:
davegallant
2024-01-08 00:26:17 +00:00
commit 25e825eb45
244 changed files with 2288 additions and 0 deletions

0
.nojekyll Normal file
View File

14
404.html Normal file

File diff suppressed because one or more lines are too long

1
CNAME Normal file
View File

@@ -0,0 +1 @@
davegallant.ca

22
about/index.html Normal file

File diff suppressed because one or more lines are too long

BIN
android-chrome-192x192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
android-chrome-512x512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

File diff suppressed because one or more lines are too long

9
browserconfig.xml Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#282828</TileColor>
</tile>
</msapplication>
</browserconfig>

14
categories/index.html Normal file

File diff suppressed because one or more lines are too long

1
categories/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on davegallant.ca</title><link>/categories/</link><description>Recent content in Categories on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=en><head><title>/categories/</title>
<link rel=canonical href=/categories/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/categories/"></head></html>

0
css/.gitkeep Normal file
View File

View File

@@ -0,0 +1,5 @@
/*! purgecss start ignore */div.code-toolbar{position:relative}div.code-toolbar>.toolbar{opacity:0;position:absolute;right:.2em;top:.3em;transition:opacity .3s ease-in-out;z-index:10}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:none;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{background:#f5f2f0;background:hsla(0,0%,88%,.2);border-radius:.5em;box-shadow:0 2px 0 0 rgba(0,0,0,.2);color:#bbb;font-size:.8em;padding:0 .5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none}.command-line-prompt{border-right:1px solid #999;display:block;float:left;font-size:100%;letter-spacing:-1px;margin-right:1em;pointer-events:none;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none}.command-line-prompt>span:before{content:" ";display:block;opacity:.7;padding-right:.8em}.command-line-prompt>span[data-user]:before{content:"[" attr(data-user) "@" attr(data-host) "] $"}.command-line-prompt>span[data-user=root]:before{content:"[" attr(data-user) "@" attr(data-host) "] #"}.command-line-prompt>span[data-prompt]:before{content:attr(data-prompt)}.command-line-prompt>span[data-continuation-prompt]:before{content:attr(data-continuation-prompt)}.command-line span.token.output{opacity:.7}
/*! purgecss end ignore */
/*! MIT License | github.com/schnerring/hugo-theme-gruvbox */code,code[class*=language-],footer,kbd,pre[class*=language-]{font-family:var(--font-monospace)}footer{align-items:center;color:var(--fg3);display:flex;font-size:.8rem;justify-content:center;padding-bottom:.5rem;padding-top:2rem;text-align:center}.pagination{display:flex;margin-top:2rem}.pagination__button{color:var(--primary-alt);font-family:var(--font-monospace);font-size:1.125rem}.pagination__button:hover{color:var(--primary)}.pagination__button--next{margin-left:auto}

14
de/404.html Normal file

File diff suppressed because one or more lines are too long

14
de/categories/index.html Normal file

File diff suppressed because one or more lines are too long

1
de/categories/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on davegallant.ca</title><link>/de/categories/</link><description>Recent content in Categories on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Dave Gallant</copyright><atom:link href="/de/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=de><head><title>/de/categories/</title>
<link rel=canonical href=/de/categories/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/de/categories/"></head></html>

14
de/index.html Normal file

File diff suppressed because one or more lines are too long

1
de/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>davegallant.ca</title><link>/de/</link><description>Recent content on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Dave Gallant</copyright><atom:link href="/de/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

2
de/page/1/index.html Normal file
View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=de><head><title>/de/</title>
<link rel=canonical href=/de/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/de/"></head></html>

1
de/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/de/categories/</loc><xhtml:link rel="alternate" hreflang="en" href="/categories/"/><xhtml:link rel="alternate" hreflang="de" href="/de/categories/"/></url><url><loc>/de/</loc><xhtml:link rel="alternate" hreflang="en" href="/"/><xhtml:link rel="alternate" hreflang="de" href="/de/"/></url><url><loc>/de/tags/</loc><xhtml:link rel="alternate" hreflang="en" href="/tags/"/><xhtml:link rel="alternate" hreflang="de" href="/de/tags/"/></url></urlset>

14
de/tags/index.html Normal file

File diff suppressed because one or more lines are too long

1
de/tags/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on davegallant.ca</title><link>/de/tags/</link><description>Recent content in Tags on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Dave Gallant</copyright><atom:link href="/de/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=de><head><title>/de/tags/</title>
<link rel=canonical href=/de/tags/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/de/tags/"></head></html>

2
en/index.html Normal file
View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=en><head><title>/</title>
<link rel=canonical href=/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/"></head></html>

1
en/sitemap.xml Normal file

File diff suppressed because one or more lines are too long

BIN
favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

BIN
favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

15
index.html Normal file

File diff suppressed because one or more lines are too long

52
index.xml Normal file
View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Welcome on davegallant.ca</title><link>/</link><description>Recent content in Welcome on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/</guid><description>&lt;p>In this post I&amp;rsquo;ll go through the process of setting up Gitea Actions and &lt;a
href="https://tailscale.com/"
class="link--external" target="_blank" rel="noreferrer"
>Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/</guid><description>&lt;p>I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I&amp;rsquo;d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I&amp;rsquo;d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.&lt;/p></description></item><item><title>Watching YouTube in private</title><link>/blog/2022/12/10/watching-youtube-in-private/</link><pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate><guid>/blog/2022/12/10/watching-youtube-in-private/</guid><description>&lt;p>I recently stumbled upon &lt;a
href="https://yewtu.be"
class="link--external" target="_blank" rel="noreferrer"
>yewtu.be&lt;/a> and found it intriguing. It not only allows you to watch YouTube without &lt;em>being on YouTube&lt;/em>, but it also allows you to create an account and subscribe to channels without a Google account. What sort of wizardry is going on under the hood? It turns out that it&amp;rsquo;s a hosted instance of &lt;a
href="https://invidious.io/"
class="link--external" target="_blank" rel="noreferrer"
>invidious&lt;/a>.&lt;/p></description></item><item><title>Virtualizing my router with pfSense</title><link>/blog/2022/04/02/virtualizing-my-router-with-pfsense/</link><pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate><guid>/blog/2022/04/02/virtualizing-my-router-with-pfsense/</guid><description>&lt;p>My aging router has been running &lt;a
href="https://en.wikipedia.org/wiki/OpenWrt"
class="link--external" target="_blank" rel="noreferrer"
>OpenWrt&lt;/a> for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a &lt;a
href="https://openwrt.org/packages/index/start"
class="link--external" target="_blank" rel="noreferrer"
>large index of packages&lt;/a>. Ever since I&amp;rsquo;ve connected some standalone wireless access points, I&amp;rsquo;ve had less of a need for an off-the-shelf all-in-one wireless router combo. I&amp;rsquo;ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!&lt;/p></description></item><item><title>Backing up gmail with Synology</title><link>/blog/2022/03/13/backing-up-gmail-with-synology/</link><pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate><guid>/blog/2022/03/13/backing-up-gmail-with-synology/</guid><description>&lt;p>I&amp;rsquo;ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.&lt;/p></description></item><item><title>Running K3s in LXC on Proxmox</title><link>/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/</link><pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate><guid>/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/</guid><description>It has been a while since I&amp;rsquo;ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I&amp;rsquo;ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it&amp;rsquo;d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.</description></item><item><title>Replacing docker with podman on macOS (and Linux)</title><link>/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/</link><pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate><guid>/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/</guid><description>&lt;p>There are a number of reasons why you might want to replace docker, especially on macOS. The following feature bundled in Docker Desktop might have motivated you enough to consider replacing docker:&lt;/p></description></item><item><title>Automatically rotating AWS access keys</title><link>/blog/2021/09/17/automatically-rotating-aws-access-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/2021/09/17/automatically-rotating-aws-access-keys/</guid><description>Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background.
In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.</description></item><item><title>Why I threw out my dotfiles</title><link>/blog/2021/09/08/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/2021/09/08/why-i-threw-out-my-dotfiles/</guid><description>&lt;p>Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (&lt;code>~/.zshrc&lt;/code>, &lt;code>~/.config/git/config&lt;/code>, &lt;code>~/.config/tmux/tmux.conf&lt;/code>, etc). I have tried several different ways to manage them, including &lt;a
href="https://www.atlassian.com/git/tutorials/dotfiles"
class="link--external" target="_blank" rel="noreferrer"
>bare git repos&lt;/a> and utilities such as &lt;a
href="https://www.gnu.org/software/stow/"
class="link--external" target="_blank" rel="noreferrer"
>GNU Stow&lt;/a>. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: &lt;a
href="https://github.com/nix-community/home-manager"
class="link--external" target="_blank" rel="noreferrer"
>home-manager&lt;/a>.&lt;/p></description></item><item><title>What to do with a homelab</title><link>/blog/2021/09/06/what-to-do-with-a-homelab/</link><pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate><guid>/blog/2021/09/06/what-to-do-with-a-homelab/</guid><description>&lt;p>A homelab can be an inexpensive way to host a multitude of internal/external services and learn &lt;em>a lot&lt;/em> in the process.&lt;/p></description></item><item><title>AppGate SDP on Arch Linux</title><link>/blog/2020/03/16/appgate-sdp-on-arch-linux/</link><pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate><guid>/blog/2020/03/16/appgate-sdp-on-arch-linux/</guid><description>&lt;p>AppGate SDP provides a Zero Trust network. This post describes how to get AppGate SDP &lt;code>4.3.2&lt;/code> working on Arch Linux.&lt;/p></description></item><item><title>About</title><link>/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/about/</guid><description>👋 I&amp;rsquo;m a software tinkerer with a passion for infra, security and self-hosting.
My primary motivation for hosting this website is to document my learnings and share them with others. I hope you find something useful here. Continuous improvement is what motivates me to keep learning.
I choose to self-host this site and other tools instead of relying exclusively on larger platforms because I believe in the open web. Interoperability is often not a primary concern for popular platforms today and I find that concerning.</description></item></channel></rss>

0
js/.gitkeep Normal file
View File

BIN
mstile-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
mstile-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
mstile-310x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
mstile-310x310.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
mstile-70x70.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

2
page/1/index.html Normal file
View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=en><head><title>/</title>
<link rel=canonical href=/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/"></head></html>

15
page/2/index.html Normal file

File diff suppressed because one or more lines are too long

15
post/index.html Normal file

File diff suppressed because one or more lines are too long

50
post/index.xml Normal file
View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on davegallant.ca</title><link>/post/</link><description>Recent content in Posts on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 10 Dec 2023 17:22:11 -0500</lastBuildDate><atom:link href="/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/</guid><description>&lt;p>In this post I&amp;rsquo;ll go through the process of setting up Gitea Actions and &lt;a
href="https://tailscale.com/"
class="link--external" target="_blank" rel="noreferrer"
>Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/</guid><description>&lt;p>I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I&amp;rsquo;d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I&amp;rsquo;d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.&lt;/p></description></item><item><title>Watching YouTube in private</title><link>/blog/2022/12/10/watching-youtube-in-private/</link><pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate><guid>/blog/2022/12/10/watching-youtube-in-private/</guid><description>&lt;p>I recently stumbled upon &lt;a
href="https://yewtu.be"
class="link--external" target="_blank" rel="noreferrer"
>yewtu.be&lt;/a> and found it intriguing. It not only allows you to watch YouTube without &lt;em>being on YouTube&lt;/em>, but it also allows you to create an account and subscribe to channels without a Google account. What sort of wizardry is going on under the hood? It turns out that it&amp;rsquo;s a hosted instance of &lt;a
href="https://invidious.io/"
class="link--external" target="_blank" rel="noreferrer"
>invidious&lt;/a>.&lt;/p></description></item><item><title>Virtualizing my router with pfSense</title><link>/blog/2022/04/02/virtualizing-my-router-with-pfsense/</link><pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate><guid>/blog/2022/04/02/virtualizing-my-router-with-pfsense/</guid><description>&lt;p>My aging router has been running &lt;a
href="https://en.wikipedia.org/wiki/OpenWrt"
class="link--external" target="_blank" rel="noreferrer"
>OpenWrt&lt;/a> for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a &lt;a
href="https://openwrt.org/packages/index/start"
class="link--external" target="_blank" rel="noreferrer"
>large index of packages&lt;/a>. Ever since I&amp;rsquo;ve connected some standalone wireless access points, I&amp;rsquo;ve had less of a need for an off-the-shelf all-in-one wireless router combo. I&amp;rsquo;ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!&lt;/p></description></item><item><title>Backing up gmail with Synology</title><link>/blog/2022/03/13/backing-up-gmail-with-synology/</link><pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate><guid>/blog/2022/03/13/backing-up-gmail-with-synology/</guid><description>&lt;p>I&amp;rsquo;ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.&lt;/p></description></item><item><title>Running K3s in LXC on Proxmox</title><link>/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/</link><pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate><guid>/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/</guid><description>It has been a while since I&amp;rsquo;ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I&amp;rsquo;ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it&amp;rsquo;d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.</description></item><item><title>Replacing docker with podman on macOS (and Linux)</title><link>/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/</link><pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate><guid>/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/</guid><description>&lt;p>There are a number of reasons why you might want to replace docker, especially on macOS. The following feature bundled in Docker Desktop might have motivated you enough to consider replacing docker:&lt;/p></description></item><item><title>Automatically rotating AWS access keys</title><link>/blog/2021/09/17/automatically-rotating-aws-access-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/2021/09/17/automatically-rotating-aws-access-keys/</guid><description>Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background.
In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.</description></item><item><title>Why I threw out my dotfiles</title><link>/blog/2021/09/08/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/2021/09/08/why-i-threw-out-my-dotfiles/</guid><description>&lt;p>Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (&lt;code>~/.zshrc&lt;/code>, &lt;code>~/.config/git/config&lt;/code>, &lt;code>~/.config/tmux/tmux.conf&lt;/code>, etc). I have tried several different ways to manage them, including &lt;a
href="https://www.atlassian.com/git/tutorials/dotfiles"
class="link--external" target="_blank" rel="noreferrer"
>bare git repos&lt;/a> and utilities such as &lt;a
href="https://www.gnu.org/software/stow/"
class="link--external" target="_blank" rel="noreferrer"
>GNU Stow&lt;/a>. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: &lt;a
href="https://github.com/nix-community/home-manager"
class="link--external" target="_blank" rel="noreferrer"
>home-manager&lt;/a>.&lt;/p></description></item><item><title>What to do with a homelab</title><link>/blog/2021/09/06/what-to-do-with-a-homelab/</link><pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate><guid>/blog/2021/09/06/what-to-do-with-a-homelab/</guid><description>&lt;p>A homelab can be an inexpensive way to host a multitude of internal/external services and learn &lt;em>a lot&lt;/em> in the process.&lt;/p></description></item><item><title>AppGate SDP on Arch Linux</title><link>/blog/2020/03/16/appgate-sdp-on-arch-linux/</link><pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate><guid>/blog/2020/03/16/appgate-sdp-on-arch-linux/</guid><description>&lt;p>AppGate SDP provides a Zero Trust network. This post describes how to get AppGate SDP &lt;code>4.3.2&lt;/code> working on Arch Linux.&lt;/p></description></item></channel></rss>

2
post/page/1/index.html Normal file
View File

@@ -0,0 +1,2 @@
<!doctype html><html lang=en><head><title>/post/</title>
<link rel=canonical href=/post/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=/post/"></head></html>

15
post/page/2/index.html Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
code[class*=language-],pre[class*=language-]{color:#ebdbb2;font-family:Consolas,Monaco,andale mono,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{color:#fbf1c7;background:#7c6f64}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{color:#fbf1c7;background:#7c6f64}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#1d2021}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.cdata{color:#a89984}.token.delimiter,.token.boolean,.token.keyword,.token.selector,.token.important,.token.atrule{color:#fb4934}.token.operator,.token.punctuation,.token.attr-name{color:#a89984}.token.tag,.token.tag .punctuation,.token.doctype,.token.builtin{color:#fabd2f}.token.entity,.token.number,.token.symbol{color:#d3869b}.token.property,.token.constant,.token.variable{color:#fb4934}.token.string,.token.char{color:#b8bb26}.token.attr-value,.token.attr-value .punctuation{color:#a89984}.token.url{color:#b8bb26;text-decoration:underline}.token.function{color:#fabd2f}.token.regex{background:#b8bb26}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.inserted{background:#a89984}.token.deleted{background:#fb4934}

View File

@@ -0,0 +1 @@
code[class*=language-],pre[class*=language-]{color:#3c3836;font-family:Consolas,Monaco,andale mono,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{color:#282828;background:#a89984}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{color:#282828;background:#a89984}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f9f5d7}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.cdata{color:#7c6f64}.token.delimiter,.token.boolean,.token.keyword,.token.selector,.token.important,.token.atrule{color:#9d0006}.token.operator,.token.punctuation,.token.attr-name{color:#7c6f64}.token.tag,.token.tag .punctuation,.token.doctype,.token.builtin{color:#b57614}.token.entity,.token.number,.token.symbol{color:#8f3f71}.token.property,.token.constant,.token.variable{color:#9d0006}.token.string,.token.char{color:#797403}.token.attr-value,.token.attr-value .punctuation{color:#7c6f64}.token.url{color:#797403;text-decoration:underline}.token.function{color:#b57614}.token.regex{background:#797403}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.inserted{background:#7c6f64}.token.deleted{background:#9d0006}

Some files were not shown because too many files have changed in this diff Show More