diff --git a/en/sitemap.xml b/en/sitemap.xml
index 4d56090c..eafd2b65 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -1 +1 @@
-/tags/freebsd/ 2025-04-21T19:25:23-04:00 /tags/linux/ 2025-04-21T19:25:23-04:00 /tags/nic/ 2025-04-21T19:25:23-04:00 /tags/opnsense/ 2025-04-21T19:25:23-04:00 /tags/pfsense/ 2025-04-21T19:25:23-04:00 /tags/proxmox/ 2025-04-21T19:25:23-04:00 /tags/realtek/ 2025-04-21T19:25:23-04:00 /tags/ 2025-04-21T19:25:23-04:00 /blog/using-a-realtek-nic-with-opnsense/ 2025-04-21T19:25:23-04:00 /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale/ 2025-04-17T23:16:56-04:00 /tags/sftpgo/ 2025-04-17T23:16:56-04:00 /tags/tailscale/ 2025-04-17T23:16:56-04:00 /tags/truenas/ 2025-04-17T23:16:56-04:00 /tags/breach/ 2025-02-16T23:23:46-05:00 /tags/darkweb/ 2025-02-16T23:23:46-05:00 /tags/haveibeenpwned/ 2025-02-16T23:23:46-05:00 /tags/hibp/ 2025-02-16T23:23:46-05:00 /blog/opting-out-of-haveibeenpwned/ 2025-02-16T23:23:46-05:00 /tags/passwords/ 2025-02-16T23:23:46-05:00 /tags/privacy/ 2025-02-16T23:23:46-05:00 /blog/amazon-ebs-csi-driver-terraform/ 2024-07-27T07:43:08-04:00 /tags/aws/ 2025-01-16T19:34:52-05:00 /tags/aws-ebs-csi-driver/ 2024-07-27T07:43:08-04:00 /tags/aws-efs-csi-driver/ 2024-07-27T07:43:08-04:00 /tags/ebs/ 2024-07-27T07:43:08-04:00 /tags/efs/ 2024-07-27T07:43:08-04:00 /tags/eks/ 2025-01-16T19:34:52-05:00 /tags/oidc/ 2024-07-27T07:43:08-04:00 /tags/gitea/ 2024-04-07T18:54:55-04:00 /tags/gitea-actions/ 2024-04-07T18:54:55-04:00 /tags/github-actions/ 2024-04-07T18:54:55-04:00 /tags/self-hosted/ 2024-07-20T08:02:37-04:00 /blog/setting-up-gitea-actions-with-tailscale/ 2024-04-07T18:54:55-04:00 /tags/aks/ 2025-01-16T19:34:52-05:00 /tags/azure/ 2025-01-16T19:34:52-05:00 /tags/bastion/ 2025-01-16T19:34:52-05:00 /tags/cloud-sql-proxy/ 2025-01-16T19:34:52-05:00 /tags/database/ 2025-01-16T19:34:52-05:00 /tags/k8s/ 2025-01-16T19:34:52-05:00 /tags/kubectl-plugin-socks5-proxy/ 2025-01-16T19:34:52-05:00 /tags/proxy/ 2025-01-16T19:34:52-05:00 /tags/socat/ 2025-01-16T19:34:52-05:00 /tags/socks/ 2025-01-16T19:34:52-05:00 /blog/using-aks-and-socks-to-connect-to-a-private-azure-db/ 2025-01-16T19:34:52-05:00 /tags/invidious/ 2024-07-20T08:02:37-04:00 /blog/watching-youtube-in-private/ 2024-07-20T08:02:37-04:00 /tags/yewtu.be/ 2024-07-20T08:02:37-04:00 /tags/youtube/ 2024-07-20T08:02:37-04:00 /tags/openwrt/ 2024-01-07T22:42:41-05:00 /tags/router/ 2024-01-07T22:42:41-05:00 /tags/router-on-a-stick/ 2024-01-07T22:42:41-05:00 /blog/virtualizing-a-router-with-pfsense/ 2024-01-07T22:42:41-05:00 /tags/vlan/ 2024-01-07T22:42:41-05:00 /blog/backing-up-gmail-with-synology/ 2024-01-07T22:42:41-05:00 /tags/backup/ 2024-01-07T22:42:41-05:00 /tags/gmail/ 2024-01-07T22:42:41-05:00 /tags/ransomware/ 2024-01-07T22:42:41-05:00 /tags/synology/ 2024-01-07T22:42:41-05:00 /tags/k3s/ 2024-01-07T22:42:41-05:00 /tags/lxc/ 2024-01-07T22:42:41-05:00 /blog/running-k3s-in-lxc-on-proxmox/ 2024-01-07T22:42:41-05:00 /tags/containers/ 2024-01-07T22:42:41-05:00 /tags/docker/ 2024-01-07T22:42:41-05:00 /tags/podman/ 2024-01-07T22:42:41-05:00 /blog/replacing-docker-with-podman-on-macos/ 2024-01-07T22:42:41-05:00 /blog/automatically-rotating-aws-keys/ 2024-01-07T22:42:41-05:00 /tags/aws-vault/ 2024-01-07T22:42:41-05:00 /tags/python/ 2024-01-07T22:42:41-05:00 /tags/security/ 2024-01-07T22:42:41-05:00 /tags/dotfiles/ 2024-02-24T10:27:45-05:00 /tags/home-manager/ 2024-02-24T10:27:45-05:00 /tags/nix/ 2024-02-24T10:27:45-05:00 /blog/why-i-threw-out-my-dotfiles/ 2024-02-24T10:27:45-05:00 /blog/what-to-do-with-a-homelab/ 2024-01-27T14:57:33-05:00 /blog/appgate-sdp-on-arch-linux/ 2024-01-07T22:42:41-05:00 /tags/vpn/ 2024-01-07T22:42:41-05:00 / 2025-02-16T23:23:46-05:00 /blog/ 2024-03-31T12:35:51-04:00 /categories/
\ No newline at end of file
+/tags/freebsd/ 2025-04-21T19:25:23-04:00 /tags/linux/ 2025-04-21T19:25:23-04:00 /tags/nic/ 2025-04-21T19:25:23-04:00 /tags/opnsense/ 2025-04-21T19:25:23-04:00 /tags/pfsense/ 2025-04-21T19:25:23-04:00 /tags/proxmox/ 2025-04-21T19:25:23-04:00 /tags/realtek/ 2025-04-21T19:25:23-04:00 /tags/ 2025-04-21T19:25:23-04:00 /blog/using-a-realtek-nic-with-opnsense/ 2025-04-21T19:25:23-04:00 /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale/ 2025-04-17T23:16:56-04:00 /tags/sftpgo/ 2025-04-17T23:16:56-04:00 /tags/tailscale/ 2025-04-17T23:16:56-04:00 /tags/truenas/ 2025-04-17T23:16:56-04:00 /tags/breach/ 2025-02-16T23:23:46-05:00 /tags/darkweb/ 2025-02-16T23:23:46-05:00 /tags/haveibeenpwned/ 2025-02-16T23:23:46-05:00 /tags/hibp/ 2025-02-16T23:23:46-05:00 /blog/opting-out-of-haveibeenpwned/ 2025-02-16T23:23:46-05:00 /tags/passwords/ 2025-02-16T23:23:46-05:00 /tags/privacy/ 2025-02-16T23:23:46-05:00 /blog/amazon-ebs-csi-driver-terraform/ 2024-07-27T07:43:08-04:00 /tags/aws/ 2025-01-16T19:34:52-05:00 /tags/aws-ebs-csi-driver/ 2024-07-27T07:43:08-04:00 /tags/aws-efs-csi-driver/ 2024-07-27T07:43:08-04:00 /tags/ebs/ 2024-07-27T07:43:08-04:00 /tags/efs/ 2024-07-27T07:43:08-04:00 /tags/eks/ 2025-01-16T19:34:52-05:00 /tags/oidc/ 2024-07-27T07:43:08-04:00 /tags/gitea/ 2024-04-07T18:54:55-04:00 /tags/gitea-actions/ 2024-04-07T18:54:55-04:00 /tags/github-actions/ 2024-04-07T18:54:55-04:00 /tags/self-hosted/ 2024-07-20T08:02:37-04:00 /blog/setting-up-gitea-actions-with-tailscale/ 2024-04-07T18:54:55-04:00 /tags/aks/ 2025-01-16T19:34:52-05:00 /tags/azure/ 2025-01-16T19:34:52-05:00 /tags/bastion/ 2025-01-16T19:34:52-05:00 /tags/cloud-sql-proxy/ 2025-01-16T19:34:52-05:00 /tags/database/ 2025-01-16T19:34:52-05:00 /tags/k8s/ 2025-01-16T19:34:52-05:00 /tags/kubectl-plugin-socks5-proxy/ 2025-01-16T19:34:52-05:00 /tags/proxy/ 2025-01-16T19:34:52-05:00 /tags/socat/ 2025-01-16T19:34:52-05:00 /tags/socks/ 2025-01-16T19:34:52-05:00 /blog/using-aks-and-socks-to-connect-to-a-private-azure-db/ 2025-01-16T19:34:52-05:00 /tags/invidious/ 2024-07-20T08:02:37-04:00 /blog/watching-youtube-in-private/ 2024-07-20T08:02:37-04:00 /tags/yewtu.be/ 2024-07-20T08:02:37-04:00 /tags/youtube/ 2024-07-20T08:02:37-04:00 /tags/openwrt/ 2024-01-07T22:42:41-05:00 /tags/router/ 2024-01-07T22:42:41-05:00 /tags/router-on-a-stick/ 2024-01-07T22:42:41-05:00 /blog/virtualizing-a-router-with-pfsense/ 2024-01-07T22:42:41-05:00 /tags/vlan/ 2024-01-07T22:42:41-05:00 /blog/backing-up-gmail-with-synology/ 2024-01-07T22:42:41-05:00 /tags/backup/ 2024-01-07T22:42:41-05:00 /tags/gmail/ 2024-01-07T22:42:41-05:00 /tags/ransomware/ 2024-01-07T22:42:41-05:00 /tags/synology/ 2024-01-07T22:42:41-05:00 /tags/k3s/ 2024-01-07T22:42:41-05:00 /tags/lxc/ 2024-01-07T22:42:41-05:00 /blog/running-k3s-in-lxc-on-proxmox/ 2024-01-07T22:42:41-05:00 /tags/containers/ 2024-01-07T22:42:41-05:00 /tags/docker/ 2024-01-07T22:42:41-05:00 /tags/podman/ 2024-01-07T22:42:41-05:00 /blog/replacing-docker-with-podman-on-macos/ 2024-01-07T22:42:41-05:00 /blog/automatically-rotating-aws-keys/ 2024-01-07T22:42:41-05:00 /tags/aws-vault/ 2024-01-07T22:42:41-05:00 /tags/python/ 2024-01-07T22:42:41-05:00 /tags/security/ 2024-01-07T22:42:41-05:00 /tags/dotfiles/ 2024-02-24T10:27:45-05:00 /tags/home-manager/ 2024-02-24T10:27:45-05:00 /tags/nix/ 2024-02-24T10:27:45-05:00 /blog/why-i-threw-out-my-dotfiles/ 2024-02-24T10:27:45-05:00 /blog/what-to-do-with-a-homelab/ 2024-01-27T14:57:33-05:00 /blog/appgate-sdp-on-arch-linux/ 2024-01-07T22:42:41-05:00 /tags/vpn/ 2024-01-07T22:42:41-05:00 / 2025-04-21T21:49:59-04:00 /blog/ 2024-03-31T12:35:51-04:00 /categories/
\ No newline at end of file
diff --git a/index.html b/index.html
index 35f17386..7ae6e0ef 100644
--- a/index.html
+++ b/index.html
@@ -7,4 +7,4 @@ I choose to host this site, alongside other tools, rather than relying exclusive
/*! CC BY-SA 3.0 License | https://stackoverflow.com/a/36118384/1154965 */@keyframes blink{50%{opacity:0}to{opacity:1}}
-/*! MIT License | github.com/schnerring/hugo-theme-gruvbox */:root[data-theme=dark]{--bg:var(--bg0);--bg0:#1a1b26;--bg0_h:#1d2021;--bg0_s:#32302f;--bg1:#181922;--bg2:#32344a;--bg3:#665c54;--bg4:#32344a;--fg:var(--fg1);--fg0:#a1a1a1;--fg1:#dddfeb;--fg2:#7da6ff;--fg3:#6a6c67;--fg4:#32344a;--gray1:var(--fg4);--gray2:#444b6a;--red1:#f7768e;--red2:#ff7a93;--green1:#9ece6a;--green2:#b9f27c;--yellow1:#e0af68;--yellow2:#ff9e64;--blue1:#63a8d3;--blue2:#63a8d3;--purple1:#ad8ee6;--purple2:#bb9af7;--aqua1:#449dab;--aqua2:#0db9d7;--orange1:#d65d0e;--orange2:#fe8019}:root{--primary:var(--blue1);--primary-alt:var(--blue2);--font-monospace:"Fira Code","Lucida Console",Monaco,monospace;--font-sans-serif:Verdana,Helvetica,sans-serif;--font-serif:"Roboto Slab",Georgia,serif}html{font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);font-size:1rem;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);line-height:1.675;word-wrap:break-word}strong{letter-spacing:.35px}a{color:inherit;-webkit-text-decoration:none;text-decoration:none}a.link--external:after{content:"\2009↗"}img{border:2px solid var(--bg1);height:auto;max-width:100%}::-moz-selection{background:var(--bg4);color:var(--fg0)}::selection{background:var(--bg4);color:var(--fg0)}h1,h2,h3{color:var(--fg0);font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-weight:300;line-height:1.4}h1 code,h2 code,h3 code{font-size:1em}h2,h3{border-bottom:1px solid var(--bg1)}h1,h2{font-weight:400}h1{font-size:1.875rem}h2{font-size:1.75rem}h3{font-size:1.625rem}@media (min-width:768px){h1{font-size:2.375rem}h2{font-size:2rem}h3{font-size:1.75rem}}blockquote,code,pre{border-radius:.2rem;padding:0 .2em}pre code{padding:0}blockquote,code,pre{background:var(--bg1)}code,pre{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}code code{background:var(--bg2)}blockquote,pre{padding:1rem}pre{background:var(--bg1)!important;overflow:auto}pre code{background:none}blockquote,blockquote.twitter-tweet{border-left:5px solid var(--primary-alt);margin:.5rem 0}blockquote.twitter-tweet code,blockquote:not(.does-not-exist) code{background:var(--bg2)}blockquote.twitter-tweet p:first-of-type,blockquote:not(.does-not-exist) p:first-of-type{margin-top:0}blockquote.twitter-tweet p:last-of-type,blockquote:not(.does-not-exist) p:last-of-type{margin-bottom:0}blockquote.twitter-tweet{border-color:var(--blue2);color:inherit;font:inherit;font-size:inherit;line-height:inherit}blockquote.twitter-tweet a{color:var(--blue2)}blockquote.twitter-tweet a:hover{color:var(--blue1);-webkit-text-decoration:none!important;text-decoration:none!important}pre::-webkit-scrollbar{height:.5rem;scrollbar-width:auto}pre::-webkit-scrollbar-track{background:var(--bg2);border-radius:.2rem}pre::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:.2rem}.layout{display:grid;grid-template-areas:"header" "main" "footer";grid-template-rows:auto 1fr auto;height:100vh}main{align-items:start;display:grid;grid-area:main;grid-template-areas:"empty content sidebar";grid-template-columns:2fr minmax(0,860px) 2fr}header{background:var(--bg1);grid-area:header}footer{grid-area:footer}footer,main{margin:.5em 1.1em}.content{grid-area:content}.sidebar{display:none;flex-direction:column;grid-area:sidebar;margin-top:3rem;position:sticky;top:2rem}@media (min-width:992px){.sidebar{display:flex}}header{display:grid;font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-size:1.125rem;grid-template-areas:"heading search nav theme-toggle";grid-template-columns:auto auto 1fr auto;padding:.75rem}.logo{color:var(--fg0);display:flex;font-weight:700;grid-area:heading}.logo:hover .logo__cursor{animation:blink 1s infinite;opacity:1}.logo__chevron,.logo__cursor{margin-left:.5rem}.logo__cursor{opacity:0}.logo__text{display:none}@media (min-width:768px){.logo__text{display:block}}.search{display:flex;grid-area:search;margin:0 1rem}#search__text{background:var(--bg2);border:1px solid var(--bg2);border-radius:.2rem;caret-color:var(--fg);color:var(--fg);outline:none;padding:0 .5rem;width:100%}#search__text:hover{border-color:var(--bg3)}#search__text:focus{border-color:var(--bg4)}#search__text::-moz-placeholder{color:var(--fg1)}#search__text::placeholder{color:var(--fg1)}#search__text[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}#search__suggestions{background:var(--bg);border-radius:.2rem;box-shadow:0 .5rem 1rem var(--bg1);font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);left:0;margin-top:2rem;position:absolute;width:95vw;z-index:1000}@media (min-width:768px){.search{position:relative}#search__suggestions{width:60vw}}.search__suggestions--hidden{display:none}.search__suggestion-item{border-bottom:1px dashed var(--bg2);display:grid;grid-template-columns:1fr 2fr}.search__suggestion-item:focus,.search__suggestion-item:focus-visible,.search__suggestion-item:hover{background:var(--bg1);cursor:pointer;outline:none}.search__suggestion-item:last-child{border:none}.search__suggestion-description,.search__suggestion-title{margin:1rem 0;padding:0 1rem}.search__suggestion-title{font-weight:700}.search__suggestion-description{border-left:1px solid var(--bg2)}.search__no-results{padding:.75rem}nav#menu{align-items:center;display:flex;grid-area:nav;justify-content:flex-end}nav#menu .menu__item{color:var(--fg)}nav#menu .menu__item:hover{color:var(--fg3);cursor:pointer}nav#menu ul{list-style:none;margin:0;padding:0}nav#menu ul.menu--horizontal{align-items:center;display:none}nav#menu ul.menu--horizontal li{display:inline-block;margin:0 .75rem}@media (min-width:768px){nav#menu ul.menu--horizontal{display:flex}}nav#menu ul.menu--vertical{background:var(--bg1);bottom:0;margin:0;padding:3rem;position:fixed;right:0;top:0;transform:translate(100%);transition:transform .5s cubic-bezier(.9,0,.1,1);width:50%;z-index:10}nav#menu ul.menu--vertical .menu__item{color:var(--fg1)}nav#menu ul.menu--vertical .menu__item:hover{color:var(--fg3)}nav#menu .menu__burger{display:flex;height:24px;width:24px}nav#menu .menu__burger>*{position:absolute}nav#menu .menu__burger svg{height:inherit;width:inherit;z-index:20}nav#menu .menu__burger input{height:inherit;opacity:0;width:inherit;z-index:30}nav#menu .menu__burger input:checked~ul.menu--vertical{transform:none}nav#menu .menu__burger input:checked~svg{stroke:var(--fg1)}@media (min-width:768px){nav#menu .menu__burger{display:none}}.sidebar{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);margin-left:auto;margin-right:auto;max-width:350px;padding-left:2.5rem}.sidebar svg{fill:var(--fg)}.content-section,.post{border-bottom:2px dotted var(--bg1);padding:0}.post img:not(figure img){box-sizing:border-box;margin:.5rem 0}.post-header{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}.post-content{margin:1.3rem 0}.content-section a,.post-content a,.post-header a{color:var(--blue2);color:var(--primary-alt)}.content-section a:hover,.post-content a:hover,.post-header a:hover{color:var(--blue1);color:var(--primary)}.post-heading__anchor{display:none}h1:hover .post-heading__anchor,h2:hover .post-heading__anchor,h3:hover .post-heading__anchor{display:inline-block}
Hello# 👋 I’m a software tinkerer with a passion for infra, security, privacy, and self-hosting.
This is a space where I document my learnings and share them with others. I hope you find something useful here. Continuous improvement is what motivates me to keep learning.
I choose to host this site, alongside other tools, rather than relying exclusively on larger platforms because I believe in the open web. Interoperability is often not a consideration for popular platforms today and I find that concerning.
Connect# If you would like to connect with me:
Credits#