92 Commits

Author SHA1 Message Date
davegallant
2faab9118e deploy: 223b7a9113 2025-08-04 23:25:56 +00:00
davegallant
a2e9a3c745 deploy: c200552255 2025-06-23 01:39:27 +00:00
davegallant
a8c1fe8bdb deploy: 71eb4328985cf089825461970b8e9e2a3df9d405 2025-06-23 01:30:36 +00:00
davegallant
069c33cf07 deploy: 8a27d7284f 2025-04-26 22:06:45 +00:00
davegallant
120d09a603 deploy: 9be886267d 2025-04-22 02:09:17 +00:00
davegallant
a6c643f1dd deploy: 9a3ca657cce4b8362c181f1650645b0be2d29aa3 2025-04-22 02:06:17 +00:00
davegallant
4de4d5daa7 deploy: 72dc46e56b1fae06f3e8e5253dbe8fe12e7c1bca 2025-04-22 01:50:37 +00:00
davegallant
182510a366 deploy: 8f1892115f 2025-04-22 01:47:26 +00:00
davegallant
59e2e76516 deploy: 81192bcbf8d51214565365425fd53bc1c6000a6a 2025-04-22 01:44:22 +00:00
davegallant
7287c88e46 deploy: eb6e713454f42b990ae6cfced133474ec996092f 2025-04-21 23:37:42 +00:00
davegallant
d77caeca2f deploy: 5af0df0e5568b5f976b0a52f78c06f5003ccec2b 2025-04-21 23:36:13 +00:00
davegallant
a137542529 deploy: 5cf842c0dd2ec8a22ee3d6aba03ea640048b7fb9 2025-04-21 23:25:53 +00:00
davegallant
62d4f05cd2 deploy: d4971f0138 2025-04-18 03:31:32 +00:00
davegallant
3501609c90 deploy: 5e64655b96aa40bcf1fad46a78bca8b0c63e5be8 2025-04-18 03:30:36 +00:00
davegallant
89cc482abd deploy: 9da95f747a591da40c0075f4ba2d23ac57938637 2025-04-18 03:28:45 +00:00
davegallant
750310ba33 deploy: 1ffd5d77b4519eb55fd1deb37b3a40af26501774 2025-04-18 03:28:08 +00:00
davegallant
4ba34a84cb deploy: e3bdcacacb702e92cdcbfdb8bd63a991c8df7b27 2025-04-18 03:27:17 +00:00
davegallant
e02dc11c43 deploy: 83d5057292933179ad89dc9467e3aa3496f85855 2025-04-18 03:26:23 +00:00
davegallant
46ec3daa52 deploy: 50f2d5c1ac0812ed4e48ccecf351597d494d075c 2025-04-18 03:26:01 +00:00
davegallant
70855b53f7 deploy: 1b7a32cdcd7e5b31045d26ae32146970545d6f73 2025-04-18 03:17:33 +00:00
davegallant
a71ef885de deploy: 00875c94e4 2025-02-18 03:56:35 +00:00
davegallant
2ba6c8868a deploy: ceb5c43ee8 2025-02-18 03:19:18 +00:00
davegallant
eca9dd733a deploy: 21acafba8e3be788a1ba4d38b76a05aee2cb8296 2025-02-18 03:17:53 +00:00
davegallant
aa96147631 deploy: a971f2d52ec7b820f5493a4d7b76d9c4e5e582a6 2025-02-18 03:10:59 +00:00
davegallant
54bd04ed5a deploy: 92314d96ca74f68f6615f3f9623e54db836f1185 2025-02-18 03:03:52 +00:00
davegallant
68a1743fcc deploy: a45a7feed1 2025-02-17 13:55:38 +00:00
davegallant
98cb136dc3 deploy: ffeef22206 2025-02-17 05:11:05 +00:00
davegallant
80496b0250 deploy: b484b4cf1c0dc47797a82e4aae0e0fabea7ba5b9 2025-02-17 05:09:05 +00:00
davegallant
070504a34f deploy: dffc71f1a80eff16c8ebb3076f07002cf8320006 2025-02-17 05:01:10 +00:00
davegallant
f104f8d77c deploy: cf3a8a53a53f893eb8e4b1d4fe1b49666daa7b92 2025-02-17 04:56:04 +00:00
davegallant
f377105f89 deploy: 629e6720335900b444d2b2bd8b231c67e16ea3ca 2025-02-17 04:32:18 +00:00
davegallant
abb0a92f99 deploy: dff6b8921a 2025-02-17 04:15:34 +00:00
davegallant
8caa7ff8bd deploy: 8c3d1bdd5b 2025-02-16 16:04:37 +00:00
davegallant
1819e07971 deploy: af833d173c 2025-01-17 00:35:20 +00:00
davegallant
d0cbca5fdf deploy: 3272b67283 2025-01-12 15:28:08 +00:00
davegallant
cddce6218f deploy: 4275a6adc4 2024-07-27 11:43:48 +00:00
davegallant
246affde36 deploy: 1ff146f4aa 2024-07-20 12:14:53 +00:00
davegallant
2e1fd2b7ac deploy: e669eb8bd70b18b4a83d3c6786eef065109c44c0 2024-07-20 12:03:24 +00:00
davegallant
598e2e205a deploy: 54eb3fc904 2024-07-12 13:03:07 +00:00
davegallant
d9c720a04d deploy: a2d6ebac07 2024-04-08 12:58:00 +00:00
davegallant
b9102048a3 deploy: bdd3648e73df6e36d57b14c1a5d07e8fd79bbe46 2024-04-08 12:53:11 +00:00
davegallant
a07e9205e0 deploy: c2fe588fe8 2024-04-08 02:30:46 +00:00
davegallant
a1a4fc72e1 deploy: 3bf6014537 2024-04-08 02:26:14 +00:00
davegallant
e47de14495 deploy: f4153443cdaba97c23968ec9f6c9e9d3e4e8a665 2024-04-08 02:20:22 +00:00
davegallant
31984040a3 deploy: f56e8564eba4d6d5a704e224e8d5bb360f0bb757 2024-04-08 02:11:13 +00:00
davegallant
fde9201d9e deploy: 8d898eb69a 2024-04-08 01:56:15 +00:00
davegallant
027120d3c6 deploy: 626d0bf36a8f54496e07b0d62fe784ebbe639741 2024-04-08 01:47:30 +00:00
davegallant
f89bf22ab5 deploy: 2475d2d67e 2024-04-07 22:55:26 +00:00
davegallant
640438b7ca deploy: 4a33488276488506137a184eece70b7f4523dcae 2024-04-07 22:52:24 +00:00
davegallant
94cfcb0d77 deploy: d839024d95 2024-04-07 22:40:04 +00:00
davegallant
7fd3e69cf8 deploy: 56510900c52e6a8a451c9d00b40223b29ea5627e 2024-04-07 21:34:09 +00:00
davegallant
55bf4d992f deploy: 953cf64989 2024-04-07 20:50:32 +00:00
davegallant
ce023ac726 deploy: c59415d6b3 2024-04-07 20:37:01 +00:00
davegallant
390d69697b deploy: 8858b52382da3dae96273003346f3c95c38a7dd9 2024-04-07 20:32:31 +00:00
davegallant
70c8bce77e deploy: de5f32db08d9b9ca10edc7847e327eb8351cab13 2024-04-07 20:18:40 +00:00
davegallant
9c3fda79c0 deploy: f9fea44ff71c0724fb7e43e652cad7218cb93e7d 2024-04-07 20:11:30 +00:00
davegallant
cf0014dff1 deploy: f8d313309a 2024-04-07 19:48:39 +00:00
davegallant
56984e6e32 deploy: 190e0b2835 2024-04-07 03:26:31 +00:00
davegallant
969aaa1ef0 deploy: 8b4902e3e2 2024-04-07 03:16:13 +00:00
davegallant
5e786ce1b3 deploy: 824f145e2c 2024-04-07 03:12:32 +00:00
davegallant
a5e8257cf5 deploy: 7ea7031521 2024-04-07 03:08:58 +00:00
davegallant
ea44dda82a deploy: f76666c70d 2024-03-31 16:48:43 +00:00
davegallant
36bdf74f2f deploy: 5d87003de0 2024-03-31 16:41:03 +00:00
davegallant
6b23e8631e deploy: 8775000f9295c6c246da97ab1f66ba22af4c8d7d 2024-03-31 16:36:29 +00:00
davegallant
1a919691da deploy: 37a27723f9 2024-03-31 16:30:19 +00:00
davegallant
85cfd8245a deploy: 2902f5735b 2024-03-19 01:53:08 +00:00
davegallant
f44399cb08 deploy: 54de6a38c8 2024-03-19 00:38:18 +00:00
davegallant
8ec67f7041 deploy: e89222a64e 2024-02-24 16:54:19 +00:00
davegallant
da997a1247 deploy: caac52cc74 2024-02-24 15:28:21 +00:00
davegallant
3f65793c98 deploy: eb1136bf90 2024-02-10 15:55:45 +00:00
davegallant
e1968d56b0 deploy: 8b08b68a8a9c511b96c58b239466e3e6e16128d6 2024-02-10 15:53:55 +00:00
davegallant
0d0759bdca deploy: 86c2eda38b1e976d6ead5ff19645c7e6e2f10582 2024-02-10 15:35:24 +00:00
davegallant
c07462a26d deploy: 1fe4f82134bf70f5e8e0ada64ced0defa922f4ed 2024-02-10 15:32:32 +00:00
davegallant
db48078e98 deploy: aaf14dba59a08f1ce683bad2f9e983318139af7b 2024-02-10 15:31:15 +00:00
davegallant
361cf93e8c deploy: a79b21feb5388f4bc54d4cc12170350cd6172e32 2024-02-10 15:25:52 +00:00
davegallant
9ffb7f8dd6 deploy: 5b33129fa0 2024-02-10 15:20:55 +00:00
davegallant
137ef199b7 deploy: ba0f6170af 2024-02-03 14:12:05 +00:00
davegallant
ce88d406e2 deploy: 5880c0d9da 2024-01-27 19:58:27 +00:00
davegallant
bf958c3674 deploy: 98db94c64091c2082e7c93e3fd9f9e625c391106 2024-01-27 19:57:59 +00:00
davegallant
7fdd913121 deploy: 8f0cec9739 2024-01-23 00:37:03 +00:00
davegallant
26d4e36577 deploy: a56eeeb528 2024-01-23 00:10:16 +00:00
davegallant
ee11260cee deploy: 396f7b0244 2024-01-22 17:56:50 +00:00
davegallant
785832dbb2 deploy: ff84218307b661a829c80369ee4365ebf1c2dfb7 2024-01-22 17:55:07 +00:00
davegallant
1f18d08fa6 deploy: c556c939e7b0bedfb7681ae5b5c2a1c325df888f 2024-01-22 17:54:12 +00:00
davegallant
8268911ddc deploy: 89bb5e66543c58ca1308bd9921c6b62f1fc14e06 2024-01-22 17:50:51 +00:00
davegallant
19c3539161 deploy: 3b15f338e57f7bea7dceaf8c370eb8167e7fe23b 2024-01-22 17:43:38 +00:00
davegallant
7600c8cb17 deploy: 6decc071723bc67ee4446c265ebb00cfb8c028e6 2024-01-22 17:43:13 +00:00
davegallant
a0e881089b deploy: 0eb0dbbe9eb5aa142c9dc8055d4c5ffbf45cf747 2024-01-22 17:42:33 +00:00
davegallant
54b2e0374a deploy: e287821694 2024-01-22 17:40:05 +00:00
davegallant
a7c034e9a2 deploy: b913e9b4a3 2024-01-13 20:28:15 +00:00
davegallant
6515b661eb deploy: ca44fa9515 2024-01-13 01:38:30 +00:00
davegallant
5b886a303b deploy: cf7ae291afe04c9eaf8f14b9234b851ec28f61e9 2024-01-12 21:54:52 +00:00
177 changed files with 909 additions and 1042 deletions

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

File diff suppressed because one or more lines are too long

View File

@@ -1,50 +1,36 @@
<?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 — Blog on davegallant.ca</title><link>/blog/</link><description>Recent content in davegallant.ca — Blog on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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 <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on davegallant.ca</title><link>/blog/</link><description>Recent content in Blog on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Using a Realtek NIC with OPNsense</title><link>/blog/using-a-realtek-nic-with-opnsense/</link><pubDate>Mon, 21 Apr 2025 17:17:46 -0400</pubDate><guid>/blog/using-a-realtek-nic-with-opnsense/</guid><description>&lt;p>For the past few years, I&amp;rsquo;ve been running pfSense (and more recently OPNsense) in a virtual machine within Proxmox. This has been running fine with a single onboard Intel NIC. A few months ago, I upgraded to a machine that has a CPU that supports hardware-accelerated transcoding, has more SATA ports, and has more PCI slots for future expansion. With the goal of having a dedicated NIC for WAN, I bought an inexpensive 1Gbps PCIe NIC (TG-3468) despite reading about some of the concerns around Realtek NICs (sluggish performance, driver instability, and in some cases system crashes).&lt;/p>
href="https://tailscale.com/" &lt;p>I&amp;rsquo;ve been running a Realtek NICs reliably on Linux and Windows desktops, so I figured I could make it work without too much effort, but it turns out Realtek NICs really can be problematic when it comes to FreeBSD-based routers, and commonly documented workarounds did not solve my problems.&lt;/p></description></item><item><title>Replicating TrueNAS datasets to sftpgo over Tailscale</title><link>/blog/replicating-truenas-datasets-to-sftpgo-over-tailscale/</link><pubDate>Thu, 17 Apr 2025 22:03:33 -0400</pubDate><guid>/blog/replicating-truenas-datasets-to-sftpgo-over-tailscale/</guid><description>&lt;p>I&amp;rsquo;ve recently spun up an instance of TrueNAS SCALE after salvaging a couple hard drives from a past computer build and decided I could use additional network storage for various backups such as Proxmox VMs and home directory backups.&lt;/p></description></item><item><title>Opting out of haveibeenpwned</title><link>/blog/opting-out-of-haveibeenpwned/</link><pubDate>Sun, 16 Feb 2025 21:15:07 -0500</pubDate><guid>/blog/opting-out-of-haveibeenpwned/</guid><description>&lt;p>Data breaches are a concern for anyone trying to live a life of relative privacy. Last month, PowerSchool informed its customers that &lt;a
href="https://www.bleepingcomputer.com/news/security/powerschool-hacker-claims-they-stole-data-of-62-million-students/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer" >hackers stole data of 62 million students&lt;/a>. This may not have impacted you, but unless you have been practicing &lt;a
href="https://inteltechniques.com/book7.html"
>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/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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/watching-youtube-in-private/</link><pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate><guid>/blog/watching-youtube-in-private/</guid><description>&lt;p>I recently stumbled upon &lt;a class="link--external" target="_blank" rel="noreferrer"
href="https://yewtu.be" >Extreme Privacy&lt;/a> techniques for decades, you likely have been impacted by a data breach in the past.&lt;/p></description></item><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
class="link--external" target="_blank" rel="noreferrer" &lt;/blockquote></description></item><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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/watching-youtube-in-private/</link><pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate><guid>/blog/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 >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/" href="https://invidious.io/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>invidious&lt;/a>.&lt;/p></description></item><item><title>Virtualizing my router with pfSense</title><link>/blog/virtualizing-a-router-with-pfsense/</link><pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate><guid>/blog/virtualizing-a-router-with-pfsense/</guid><description>&lt;p>My aging router has been running &lt;a >invidious&lt;/a>.&lt;/p></description></item><item><title>Virtualizing my router with pfSense</title><link>/blog/virtualizing-a-router-with-pfsense/</link><pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate><guid>/blog/virtualizing-a-router-with-pfsense/</guid><description>&lt;p>My aging router has been running &lt;a
href="https://en.wikipedia.org/wiki/OpenWrt" href="https://en.wikipedia.org/wiki/OpenWrt"
class="link--external" target="_blank" rel="noreferrer"
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 >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" href="https://openwrt.org/packages/index/start"
class="link--external" target="_blank" rel="noreferrer"
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/backing-up-gmail-with-synology/</link><pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate><guid>/blog/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/running-k3s-in-lxc-on-proxmox/</link><pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate><guid>/blog/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/replacing-docker-with-podman-on-macos/</link><pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate><guid>/blog/replacing-docker-with-podman-on-macos/</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/automatically-rotating-aws-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/automatically-rotating-aws-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. >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/backing-up-gmail-with-synology/</link><pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate><guid>/blog/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/running-k3s-in-lxc-on-proxmox/</link><pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate><guid>/blog/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/replacing-docker-with-podman-on-macos/</link><pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate><guid>/blog/replacing-docker-with-podman-on-macos/</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/automatically-rotating-aws-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/automatically-rotating-aws-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/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/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 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/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/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" href="https://www.atlassian.com/git/tutorials/dotfiles"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>bare git repos&lt;/a> and utilities such as &lt;a >bare git repos&lt;/a> and utilities such as &lt;a
href="https://www.gnu.org/software/stow/" href="https://www.gnu.org/software/stow/"
class="link--external" target="_blank" rel="noreferrer"
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 >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" href="https://github.com/nix-community/home-manager"
class="link--external" target="_blank" rel="noreferrer"
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/what-to-do-with-a-homelab/</link><pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate><guid>/blog/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/appgate-sdp-on-arch-linux/</link><pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate><guid>/blog/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> >home-manager&lt;/a>.&lt;/p></description></item><item><title>What to do with a homelab</title><link>/blog/what-to-do-with-a-homelab/</link><pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate><guid>/blog/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/appgate-sdp-on-arch-linux/</link><pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate><guid>/blog/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>

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.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 34 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: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
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}
/*! MIT License | github.com/schnerring/hugo-theme-gruvbox */code,footer{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}

View File

@@ -1,5 +0,0 @@
/*! 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}

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

File diff suppressed because one or more lines are too long

View File

@@ -1,50 +1,36 @@
<?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>/</link><description>Recent content 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/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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 <?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>/</link><description>Recent content 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>Using a Realtek NIC with OPNsense</title><link>/blog/using-a-realtek-nic-with-opnsense/</link><pubDate>Mon, 21 Apr 2025 17:17:46 -0400</pubDate><guid>/blog/using-a-realtek-nic-with-opnsense/</guid><description>&lt;p>For the past few years, I&amp;rsquo;ve been running pfSense (and more recently OPNsense) in a virtual machine within Proxmox. This has been running fine with a single onboard Intel NIC. A few months ago, I upgraded to a machine that has a CPU that supports hardware-accelerated transcoding, has more SATA ports, and has more PCI slots for future expansion. With the goal of having a dedicated NIC for WAN, I bought an inexpensive 1Gbps PCIe NIC (TG-3468) despite reading about some of the concerns around Realtek NICs (sluggish performance, driver instability, and in some cases system crashes).&lt;/p>
href="https://tailscale.com/" &lt;p>I&amp;rsquo;ve been running a Realtek NICs reliably on Linux and Windows desktops, so I figured I could make it work without too much effort, but it turns out Realtek NICs really can be problematic when it comes to FreeBSD-based routers, and commonly documented workarounds did not solve my problems.&lt;/p></description></item><item><title>Replicating TrueNAS datasets to sftpgo over Tailscale</title><link>/blog/replicating-truenas-datasets-to-sftpgo-over-tailscale/</link><pubDate>Thu, 17 Apr 2025 22:03:33 -0400</pubDate><guid>/blog/replicating-truenas-datasets-to-sftpgo-over-tailscale/</guid><description>&lt;p>I&amp;rsquo;ve recently spun up an instance of TrueNAS SCALE after salvaging a couple hard drives from a past computer build and decided I could use additional network storage for various backups such as Proxmox VMs and home directory backups.&lt;/p></description></item><item><title>Opting out of haveibeenpwned</title><link>/blog/opting-out-of-haveibeenpwned/</link><pubDate>Sun, 16 Feb 2025 21:15:07 -0500</pubDate><guid>/blog/opting-out-of-haveibeenpwned/</guid><description>&lt;p>Data breaches are a concern for anyone trying to live a life of relative privacy. Last month, PowerSchool informed its customers that &lt;a
href="https://www.bleepingcomputer.com/news/security/powerschool-hacker-claims-they-stole-data-of-62-million-students/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer" >hackers stole data of 62 million students&lt;/a>. This may not have impacted you, but unless you have been practicing &lt;a
href="https://inteltechniques.com/book7.html"
>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/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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/watching-youtube-in-private/</link><pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate><guid>/blog/watching-youtube-in-private/</guid><description>&lt;p>I recently stumbled upon &lt;a class="link--external" target="_blank" rel="noreferrer"
href="https://yewtu.be" >Extreme Privacy&lt;/a> techniques for decades, you likely have been impacted by a data breach in the past.&lt;/p></description></item><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
class="link--external" target="_blank" rel="noreferrer" &lt;/blockquote></description></item><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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/watching-youtube-in-private/</link><pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate><guid>/blog/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 >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/" href="https://invidious.io/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>invidious&lt;/a>.&lt;/p></description></item><item><title>Virtualizing my router with pfSense</title><link>/blog/virtualizing-a-router-with-pfsense/</link><pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate><guid>/blog/virtualizing-a-router-with-pfsense/</guid><description>&lt;p>My aging router has been running &lt;a >invidious&lt;/a>.&lt;/p></description></item><item><title>Virtualizing my router with pfSense</title><link>/blog/virtualizing-a-router-with-pfsense/</link><pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate><guid>/blog/virtualizing-a-router-with-pfsense/</guid><description>&lt;p>My aging router has been running &lt;a
href="https://en.wikipedia.org/wiki/OpenWrt" href="https://en.wikipedia.org/wiki/OpenWrt"
class="link--external" target="_blank" rel="noreferrer"
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 >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" href="https://openwrt.org/packages/index/start"
class="link--external" target="_blank" rel="noreferrer"
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/backing-up-gmail-with-synology/</link><pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate><guid>/blog/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/running-k3s-in-lxc-on-proxmox/</link><pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate><guid>/blog/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/replacing-docker-with-podman-on-macos/</link><pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate><guid>/blog/replacing-docker-with-podman-on-macos/</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/automatically-rotating-aws-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/automatically-rotating-aws-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. >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/backing-up-gmail-with-synology/</link><pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate><guid>/blog/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/running-k3s-in-lxc-on-proxmox/</link><pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate><guid>/blog/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/replacing-docker-with-podman-on-macos/</link><pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate><guid>/blog/replacing-docker-with-podman-on-macos/</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/automatically-rotating-aws-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/automatically-rotating-aws-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/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/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 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/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/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" href="https://www.atlassian.com/git/tutorials/dotfiles"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>bare git repos&lt;/a> and utilities such as &lt;a >bare git repos&lt;/a> and utilities such as &lt;a
href="https://www.gnu.org/software/stow/" href="https://www.gnu.org/software/stow/"
class="link--external" target="_blank" rel="noreferrer"
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 >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" href="https://github.com/nix-community/home-manager"
class="link--external" target="_blank" rel="noreferrer"
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/what-to-do-with-a-homelab/</link><pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate><guid>/blog/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/appgate-sdp-on-arch-linux/</link><pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate><guid>/blog/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> >home-manager&lt;/a>.&lt;/p></description></item><item><title>What to do with a homelab</title><link>/blog/what-to-do-with-a-homelab/</link><pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate><guid>/blog/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/appgate-sdp-on-arch-linux/</link><pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate><guid>/blog/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>

View File

@@ -1 +0,0 @@
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

@@ -1 +0,0 @@
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}

View File

@@ -0,0 +1,43 @@
.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;
-ms-user-select: none;
user-select: none;
}
.command-line-prompt > span:before {
opacity: 0.7;
content: ' ';
display: block;
padding-right: 0.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 {
/* Make shell output lines a bit lighter to distinguish them from shell commands */
opacity: 0.7;
}

View File

@@ -0,0 +1,65 @@
div.code-toolbar {
position: relative;
}
div.code-toolbar > .toolbar {
position: absolute;
z-index: 10;
top: .3em;
right: .2em;
transition: opacity 0.3s ease-in-out;
opacity: 0;
}
div.code-toolbar:hover > .toolbar {
opacity: 1;
}
/* Separate line b/c rules are thrown out if selector is invalid.
IE11 and old Edge versions don't support :focus-within. */
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; /* for button */
-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 {
color: #bbb;
font-size: .8em;
padding: 0 .5em;
background: #f5f2f0;
background: rgba(224, 224, 224, 0.2);
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
border-radius: .5em;
}
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
div.code-toolbar > .toolbar > .toolbar-item > a:focus,
div.code-toolbar > .toolbar > .toolbar-item > button:hover,
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
div.code-toolbar > .toolbar > .toolbar-item > span:hover,
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
color: inherit;
text-decoration: none;
}

View File

@@ -1,44 +1 @@
# Dark Visitors robots.txt User-agent: *
# AI Data Scraper
# https://darkvisitors.com/agents/anthropic-ai
User-agent: anthropic-ai
Disallow: /
# AI Data Scraper
# https://darkvisitors.com/agents/ccbot
User-agent: CCBot
Disallow: /
# AI Data Scraper
# https://darkvisitors.com/agents/facebookbot
User-agent: FacebookBot
Disallow: /
# AI Data Scraper
# https://darkvisitors.com/agents/google-extended
User-agent: Google-Extended
Disallow: /
# AI Data Scraper
# https://darkvisitors.com/agents/gptbot
User-agent: GPTBot
Disallow: /
# AI Data Scraper
# https://darkvisitors.com/agents/omgilibot
User-agent: omgilibot
Disallow: /
User-agent: omgili
Disallow: /
User-agent: *
Allow: /
Sitemap: /sitemap.xml

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>/en/sitemap.xml</loc><lastmod>2024-01-08T17:22:23-05:00</lastmod></sitemap><sitemap><loc>/de/sitemap.xml</loc></sitemap></sitemapindex> <?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>/en/sitemap.xml</loc><lastmod>2025-06-22T21:30:06-04:00</lastmod></sitemap><sitemap><loc>/de/sitemap.xml</loc></sitemap></sitemapindex>

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aks on davegallant.ca</title><link>/tags/aks/</link><description>Recent content in aks on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/aks/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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></channel></rss> <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aks on davegallant.ca</title><link>/tags/aks/</link><description>Recent content in aks on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/aks/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aws-ebs-csi-driver on davegallant.ca</title><link>/tags/aws-ebs-csi-driver/</link><description>Recent content in aws-ebs-csi-driver on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 07 Apr 2024 15:20:23 -0400</lastBuildDate><atom:link href="/tags/aws-ebs-csi-driver/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
&lt;/blockquote></description></item></channel></rss>

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aws-efs-csi-driver on davegallant.ca</title><link>/tags/aws-efs-csi-driver/</link><description>Recent content in aws-efs-csi-driver on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 07 Apr 2024 15:20:23 -0400</lastBuildDate><atom:link href="/tags/aws-efs-csi-driver/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
&lt;/blockquote></description></item></channel></rss>

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aws on davegallant.ca</title><link>/tags/aws/</link><description>Recent content in aws on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/aws/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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>Automatically rotating AWS access keys</title><link>/blog/automatically-rotating-aws-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/automatically-rotating-aws-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. <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aws on davegallant.ca</title><link>/tags/aws/</link><description>Recent content in aws on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 07 Apr 2024 15:20:23 -0400</lastBuildDate><atom:link href="/tags/aws/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
&lt;/blockquote></description></item><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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>Automatically rotating AWS access keys</title><link>/blog/automatically-rotating-aws-keys/</link><pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate><guid>/blog/automatically-rotating-aws-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></channel></rss> In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.</description></item></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>azure on davegallant.ca</title><link>/tags/azure/</link><description>Recent content in azure on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/azure/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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></channel></rss> <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>azure on davegallant.ca</title><link>/tags/azure/</link><description>Recent content in azure on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/azure/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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></channel></rss>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>bastion on davegallant.ca</title><link>/tags/bastion/</link><description>Recent content in bastion on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/bastion/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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></channel></rss> <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>bastion on davegallant.ca</title><link>/tags/bastion/</link><description>Recent content in bastion on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/bastion/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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></channel></rss>

8
tags/breach/index.html Normal file

File diff suppressed because one or more lines are too long

7
tags/breach/index.xml Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>breach on davegallant.ca</title><link>/tags/breach/</link><description>Recent content in breach on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 16 Feb 2025 21:15:07 -0500</lastBuildDate><atom:link href="/tags/breach/index.xml" rel="self" type="application/rss+xml"/><item><title>Opting out of haveibeenpwned</title><link>/blog/opting-out-of-haveibeenpwned/</link><pubDate>Sun, 16 Feb 2025 21:15:07 -0500</pubDate><guid>/blog/opting-out-of-haveibeenpwned/</guid><description>&lt;p>Data breaches are a concern for anyone trying to live a life of relative privacy. Last month, PowerSchool informed its customers that &lt;a
href="https://www.bleepingcomputer.com/news/security/powerschool-hacker-claims-they-stole-data-of-62-million-students/"
class="link--external" target="_blank" rel="noreferrer"
>hackers stole data of 62 million students&lt;/a>. This may not have impacted you, but unless you have been practicing &lt;a
href="https://inteltechniques.com/book7.html"
class="link--external" target="_blank" rel="noreferrer"
>Extreme Privacy&lt;/a> techniques for decades, you likely have been impacted by a data breach in the past.&lt;/p></description></item></channel></rss>

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>cloud-sql-proxy on davegallant.ca</title><link>/tags/cloud-sql-proxy/</link><description>Recent content in cloud-sql-proxy on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/cloud-sql-proxy/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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></channel></rss> <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>cloud-sql-proxy on davegallant.ca</title><link>/tags/cloud-sql-proxy/</link><description>Recent content in cloud-sql-proxy on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/cloud-sql-proxy/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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></channel></rss>

File diff suppressed because one or more lines are too long

8
tags/darkweb/index.html Normal file

File diff suppressed because one or more lines are too long

7
tags/darkweb/index.xml Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>darkweb on davegallant.ca</title><link>/tags/darkweb/</link><description>Recent content in darkweb on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 16 Feb 2025 21:15:07 -0500</lastBuildDate><atom:link href="/tags/darkweb/index.xml" rel="self" type="application/rss+xml"/><item><title>Opting out of haveibeenpwned</title><link>/blog/opting-out-of-haveibeenpwned/</link><pubDate>Sun, 16 Feb 2025 21:15:07 -0500</pubDate><guid>/blog/opting-out-of-haveibeenpwned/</guid><description>&lt;p>Data breaches are a concern for anyone trying to live a life of relative privacy. Last month, PowerSchool informed its customers that &lt;a
href="https://www.bleepingcomputer.com/news/security/powerschool-hacker-claims-they-stole-data-of-62-million-students/"
class="link--external" target="_blank" rel="noreferrer"
>hackers stole data of 62 million students&lt;/a>. This may not have impacted you, but unless you have been practicing &lt;a
href="https://inteltechniques.com/book7.html"
class="link--external" target="_blank" rel="noreferrer"
>Extreme Privacy&lt;/a> techniques for decades, you likely have been impacted by a data breach in the past.&lt;/p></description></item></channel></rss>

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>database on davegallant.ca</title><link>/tags/database/</link><description>Recent content in database on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/database/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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></channel></rss> <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>database on davegallant.ca</title><link>/tags/database/</link><description>Recent content in database on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/database/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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></channel></rss>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>dotfiles on davegallant.ca</title><link>/tags/dotfiles/</link><description>Recent content in dotfiles on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Wed, 08 Sep 2021 00:42:33 -0400</lastBuildDate><atom:link href="/tags/dotfiles/index.xml" rel="self" type="application/rss+xml"/><item><title>Why I threw out my dotfiles</title><link>/blog/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/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 <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>dotfiles on davegallant.ca</title><link>/tags/dotfiles/</link><description>Recent content in dotfiles on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Wed, 08 Sep 2021 00:42:33 -0400</lastBuildDate><atom:link href="/tags/dotfiles/index.xml" rel="self" type="application/rss+xml"/><item><title>Why I threw out my dotfiles</title><link>/blog/why-i-threw-out-my-dotfiles/</link><pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate><guid>/blog/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" href="https://www.atlassian.com/git/tutorials/dotfiles"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>bare git repos&lt;/a> and utilities such as &lt;a >bare git repos&lt;/a> and utilities such as &lt;a
href="https://www.gnu.org/software/stow/" href="https://www.gnu.org/software/stow/"
class="link--external" target="_blank" rel="noreferrer"
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 >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" href="https://github.com/nix-community/home-manager"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>home-manager&lt;/a>.&lt;/p></description></item></channel></rss> >home-manager&lt;/a>.&lt;/p></description></item></channel></rss>

8
tags/ebs/index.html Normal file

File diff suppressed because one or more lines are too long

4
tags/ebs/index.xml Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ebs on davegallant.ca</title><link>/tags/ebs/</link><description>Recent content in ebs on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 07 Apr 2024 15:20:23 -0400</lastBuildDate><atom:link href="/tags/ebs/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
&lt;/blockquote></description></item></channel></rss>

View File

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

8
tags/efs/index.html Normal file

File diff suppressed because one or more lines are too long

4
tags/efs/index.xml Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>efs on davegallant.ca</title><link>/tags/efs/</link><description>Recent content in efs on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 07 Apr 2024 15:20:23 -0400</lastBuildDate><atom:link href="/tags/efs/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
&lt;/blockquote></description></item></channel></rss>

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>eks on davegallant.ca</title><link>/tags/eks/</link><description>Recent content in eks on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 22 May 2023 16:31:29 -0400</lastBuildDate><atom:link href="/tags/eks/index.xml" rel="self" type="application/rss+xml"/><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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></channel></rss> <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>eks on davegallant.ca</title><link>/tags/eks/</link><description>Recent content in eks on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 07 Apr 2024 15:20:23 -0400</lastBuildDate><atom:link href="/tags/eks/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon EBS CSI driver with terraform</title><link>/blog/amazon-ebs-csi-driver-terraform/</link><pubDate>Sun, 07 Apr 2024 15:20:23 -0400</pubDate><guid>/blog/amazon-ebs-csi-driver-terraform/</guid><description>&lt;p>I recently configured the Amazon EBS CSI driver and found the setup with terraform to be more effort than expected. I wanted to avoid third-party modules and keep it as simple as possible, while remaining least privilege.&lt;/p>
&lt;blockquote>
&lt;p>UPDATE: This approach can also be used for the aws-efs-csi-driver&lt;/p>
&lt;/blockquote></description></item><item><title>Using AKS and SOCKS to connect to a private Azure DB</title><link>/blog/using-aks-and-socks-to-connect-to-a-private-azure-db/</link><pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate><guid>/blog/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 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></channel></rss>

8
tags/freebsd/index.html Normal file

File diff suppressed because one or more lines are too long

2
tags/freebsd/index.xml Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>freebsd on davegallant.ca</title><link>/tags/freebsd/</link><description>Recent content in freebsd on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Mon, 21 Apr 2025 17:17:46 -0400</lastBuildDate><atom:link href="/tags/freebsd/index.xml" rel="self" type="application/rss+xml"/><item><title>Using a Realtek NIC with OPNsense</title><link>/blog/using-a-realtek-nic-with-opnsense/</link><pubDate>Mon, 21 Apr 2025 17:17:46 -0400</pubDate><guid>/blog/using-a-realtek-nic-with-opnsense/</guid><description>&lt;p>For the past few years, I&amp;rsquo;ve been running pfSense (and more recently OPNsense) in a virtual machine within Proxmox. This has been running fine with a single onboard Intel NIC. A few months ago, I upgraded to a machine that has a CPU that supports hardware-accelerated transcoding, has more SATA ports, and has more PCI slots for future expansion. With the goal of having a dedicated NIC for WAN, I bought an inexpensive 1Gbps PCIe NIC (TG-3468) despite reading about some of the concerns around Realtek NICs (sluggish performance, driver instability, and in some cases system crashes).&lt;/p>
&lt;p>I&amp;rsquo;ve been running a Realtek NICs reliably on Linux and Windows desktops, so I figured I could make it work without too much effort, but it turns out Realtek NICs really can be problematic when it comes to FreeBSD-based routers, and commonly documented workarounds did not solve my problems.&lt;/p></description></item></channel></rss>

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gitea actions on davegallant.ca</title><link>/tags/gitea-actions/</link><description>Recent content in gitea actions 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="/tags/gitea-actions/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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 <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gitea actions on davegallant.ca</title><link>/tags/gitea-actions/</link><description>Recent content in gitea actions 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="/tags/gitea-actions/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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/" href="https://tailscale.com/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item></channel></rss> >Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gitea on davegallant.ca</title><link>/tags/gitea/</link><description>Recent content in gitea 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="/tags/gitea/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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 <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gitea on davegallant.ca</title><link>/tags/gitea/</link><description>Recent content in gitea 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="/tags/gitea/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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/" href="https://tailscale.com/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item></channel></rss> >Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>github actions on davegallant.ca</title><link>/tags/github-actions/</link><description>Recent content in github actions 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="/tags/github-actions/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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 <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>github actions on davegallant.ca</title><link>/tags/github-actions/</link><description>Recent content in github actions 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="/tags/github-actions/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting up Gitea Actions with Tailscale</title><link>/blog/setting-up-gitea-actions-with-tailscale/</link><pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate><guid>/blog/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/" href="https://tailscale.com/"
class="link--external" target="_blank" rel="noreferrer"
class="link--external" target="_blank" rel="noreferrer"
>Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item></channel></rss> >Tailscale&lt;/a>, unlocking a simple and secure way to automate workflows.&lt;/p></description></item></channel></rss>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>haveibeenpwned on davegallant.ca</title><link>/tags/haveibeenpwned/</link><description>Recent content in haveibeenpwned on davegallant.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Dave Gallant</copyright><lastBuildDate>Sun, 16 Feb 2025 21:15:07 -0500</lastBuildDate><atom:link href="/tags/haveibeenpwned/index.xml" rel="self" type="application/rss+xml"/><item><title>Opting out of haveibeenpwned</title><link>/blog/opting-out-of-haveibeenpwned/</link><pubDate>Sun, 16 Feb 2025 21:15:07 -0500</pubDate><guid>/blog/opting-out-of-haveibeenpwned/</guid><description>&lt;p>Data breaches are a concern for anyone trying to live a life of relative privacy. Last month, PowerSchool informed its customers that &lt;a
href="https://www.bleepingcomputer.com/news/security/powerschool-hacker-claims-they-stole-data-of-62-million-students/"
class="link--external" target="_blank" rel="noreferrer"
>hackers stole data of 62 million students&lt;/a>. This may not have impacted you, but unless you have been practicing &lt;a
href="https://inteltechniques.com/book7.html"
class="link--external" target="_blank" rel="noreferrer"
>Extreme Privacy&lt;/a> techniques for decades, you likely have been impacted by a data breach in the past.&lt;/p></description></item></channel></rss>

View File

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

8
tags/hibp/index.html Normal file

File diff suppressed because one or more lines are too long

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