mirror of
https://github.com/davegallant/davegallant.github.io.git
synced 2025-10-04 08:46:00 +00:00
Compare commits
5 Commits
3c1f66efe7
...
86d918f4e5
Author | SHA1 | Date | |
---|---|---|---|
|
86d918f4e5 | ||
|
959b049552 | ||
|
1406dd036f | ||
|
3dc7cd1b5b | ||
|
feaf9c6be0 |
10
Makefile
10
Makefile
@@ -9,14 +9,20 @@ ifeq ($(origin .RECIPEPREFIX), undefined)
|
||||
endif
|
||||
.RECIPEPREFIX = >
|
||||
|
||||
build:
|
||||
> rm -rf public/
|
||||
build: clean
|
||||
> hugo
|
||||
> make index-pagefind
|
||||
|
||||
clean:
|
||||
> rm -rf public/
|
||||
|
||||
## server: run server locally on port 1313 and open in a browser
|
||||
server:
|
||||
> hugo server --buildDrafts
|
||||
|
||||
index-pagefind:
|
||||
> npx pagefind --source "public"
|
||||
|
||||
## help: Print this help message
|
||||
help:
|
||||
> @echo
|
||||
|
@@ -2,6 +2,9 @@
|
||||
title: About
|
||||
weight: -210
|
||||
disable_comments: true
|
||||
hide_date: true
|
||||
---
|
||||
|
||||
I'm a software tinkerer with a passion for infrastructure, tooling, security, and coffee.
|
||||
|
||||
Feel free to reach out at [me@davegallant.ca](mailto:me@davegallant.ca).
|
||||
|
@@ -2,24 +2,28 @@
|
||||
<html><head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"><title>About - davegallant</title><link rel="icon" type="image/png" href=https://davegallant.ca/favicon.ico /><meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee." />
|
||||
<meta name="description" content="I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.
|
||||
Feel free to reach out at me@davegallant.ca." />
|
||||
<meta property="og:image" content=""/>
|
||||
<meta property="og:title" content="About" />
|
||||
<meta property="og:description" content="I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee." />
|
||||
<meta property="og:description" content="I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.
|
||||
Feel free to reach out at me@davegallant.ca." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="/about/" /><meta property="article:section" content="" />
|
||||
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="About"/>
|
||||
<meta name="twitter:description" content="I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee."/>
|
||||
<meta name="twitter:description" content="I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.
|
||||
Feel free to reach out at me@davegallant.ca."/>
|
||||
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
||||
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@1,500&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Fira+Sans&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,32 +86,38 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">About</h1>
|
||||
<div class="meta">Posted on Jan 1, 0001</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<section class="body"><p>I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.</p>
|
||||
<p>Feel free to reach out at <a href="mailto:me@davegallant.ca">me@davegallant.ca</a>.</p>
|
||||
</section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
</div>
|
||||
@@ -115,18 +125,28 @@
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -139,7 +159,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2020/03/16/appgate-sdp-on-arch-linux/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2020-03-16T22:00:15-04:00" />
|
||||
<meta property="article:modified_time" content="2020-03-16T22:00:15-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="AppGate SDP on Arch Linux"/>
|
||||
<meta name="twitter:description" content="AppGate SDP provides a Zero Trust network. This post describes how to get AppGate SDP 4.3.2 working on Arch Linux."/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">AppGate SDP on Arch Linux</h1>
|
||||
|
||||
<div class="meta">Posted on Mar 16, 2020</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -202,6 +200,16 @@ module 'platform' has no attribute 'linux_distribution'
|
||||
<p>The docs say <code>Deprecated since version 3.5, will be removed in version 3.8: See alternative like the distro package.</code></p>
|
||||
<p>I suppose this highlights one of the caveats of relying upon the system’s python, rather than having an isolated, dedicated environment for all dependencies.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -243,18 +251,28 @@ module 'platform' has no attribute 'linux_distribution'
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -267,7 +285,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2021/09/06/what-to-do-with-a-homelab/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2021-09-06T01:12:54-04:00" />
|
||||
<meta property="article:modified_time" content="2021-09-06T01:12:54-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="What To Do With A Homelab"/>
|
||||
<meta name="twitter:description" content="A homelab can be an inexpensive way to host a multitude of internal/external services and learn a lot in the process."/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">What To Do With A Homelab</h1>
|
||||
|
||||
<div class="meta">Posted on Sep 6, 2021</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -138,6 +136,16 @@ Containers have much less overhead in terms of boot time and storage allocation.
|
||||
<h2 id="in-summary">In Summary<a href="#in-summary" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>Building out a homelab can be a rewarding experience and it doesn’t require buying a rack full of expensive servers to get a significant amount of utility. There are many services that you can run that require very minimal setup, making it possible to get a server up and running in a short period of time, with monitoring, and that can be securely connected to remotely.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -191,18 +199,28 @@ Containers have much less overhead in terms of boot time and storage allocation.
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -215,7 +233,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2021/09/08/why-i-threw-out-my-dotfiles/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2021-09-08T00:42:33-04:00" />
|
||||
<meta property="article:modified_time" content="2021-09-08T00:42:33-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Why I Threw Out My Dotfiles"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Why I Threw Out My Dotfiles</h1>
|
||||
|
||||
<div class="meta">Posted on Sep 8, 2021</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -246,6 +244,16 @@ nix-shell '<home-manager>' -A install
|
||||
<h2 id="wrapping-up">Wrapping up<a href="#wrapping-up" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>The title of this post is slightly misleading, since it’s possible to retain some of your dotfiles and have them intermingle with home-manager by including them alongside nix. The idea of defining user configuration using nix can provide a clean way to maintain your configuration, and allow it to be portable across platforms. Is it worth the effort to migrate away from shell scripts and dotfiles? I’d say so.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -287,18 +295,28 @@ nix-shell '<home-manager>' -A install
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -311,7 +329,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2021/09/17/automatically-rotating-aws-access-keys/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2021-09-17T12:48:33-04:00" />
|
||||
<meta property="article:modified_time" content="2021-09-17T12:48:33-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Automatically Rotating AWS Access Keys"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,32 +83,39 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Automatically Rotating AWS Access Keys</h1>
|
||||
|
||||
<div class="meta">Posted on Sep 17, 2021</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<section class="body"><p>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 <a href="https://gist.github.com/davegallant/2c042686a78684a657fe99e20fa7a924#file-aws_access_key_rotator-py">script</a> since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background.</p>
|
||||
<p>In the longer term, migrating my local workflows to <a href="https://github.com/99designs/aws-vault">aws-vault</a> seems like a more secure solution. This would mean that credentials (even temporary session credentials) never have to be written in plaintext to disk (i.e. where <a href="https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html">AWS suggests</a>). Any existing applications, such as terraform, could be have their credentials passed to them from aws-vault, which retrieves them from the OS’s secure keystore. There is even a <a href="https://github.com/99designs/aws-vault/blob/master/USAGE.md#rotating-credentials">rotate command</a> included.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -151,18 +159,28 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -175,7 +193,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2021-10-11T10:43:35-04:00" />
|
||||
<meta property="article:modified_time" content="2021-10-11T10:43:35-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Replacing docker with podman on macOS (and Linux)"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Replacing docker with podman on macOS (and Linux)</h1>
|
||||
|
||||
<div class="meta">Posted on Oct 11, 2021</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -197,6 +195,16 @@ Hello world
|
||||
</blockquote>
|
||||
<p>I had been experimenting with Podman on Linux before writing this, but after listening to this <a href="https://kubernetespodcast.com/episode/164-podman/">podcast episode</a>, I was inspired to give Podman a try on macOS.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -238,18 +246,28 @@ Hello world
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -262,7 +280,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2021-11-14T10:07:03-05:00" />
|
||||
<meta property="article:modified_time" content="2021-11-14T10:07:03-05:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Running K3s in LXC on Proxmox"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Running K3s in LXC on Proxmox</h1>
|
||||
|
||||
<div class="meta">Posted on Nov 14, 2021</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -191,6 +189,16 @@ horizontalpodautoscaler.autoscaling/tekton-pipelines-webhook Deployment/tekton
|
||||
<p>I made sure to install Tailscale in the container so that I can easily access K3s from anywhere.</p>
|
||||
<p>If I’m feeling adventurous, I might experiment with <a href="https://rancher.com/docs/k3s/latest/en/advanced/#running-k3s-with-rootless-mode-experimental">K3s rootless</a>.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -232,18 +240,28 @@ horizontalpodautoscaler.autoscaling/tekton-pipelines-webhook Deployment/tekton
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -256,7 +274,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2022/03/13/backing-up-gmail-with-synology/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2022-03-13T18:49:10-04:00" />
|
||||
<meta property="article:modified_time" content="2022-03-13T18:49:10-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Backing Up Gmail With Synology"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Backing Up Gmail With Synology</h1>
|
||||
|
||||
<div class="meta">Posted on Mar 13, 2022</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -126,6 +124,16 @@ Encrypting your shared volumes should also be done, since unfortunately <a href=
|
||||
<h2 id="summary">Summary<a href="#summary" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>Having backups of various forms of cloud data is a good investment, especially in <a href="https://en.wikipedia.org/wiki/2022_Ukraine_cyberattacks">times of war</a>. I certainly feel more at ease for having backed up my emails.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -171,18 +179,28 @@ Encrypting your shared volumes should also be done, since unfortunately <a href=
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -195,7 +213,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2022/04/02/virtualizing-my-router-with-pfsense/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2022-04-02T18:50:09-04:00" />
|
||||
<meta property="article:modified_time" content="2022-04-02T18:50:09-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Virtualizing My Router With pfSense"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Virtualizing My Router With pfSense</h1>
|
||||
|
||||
<div class="meta">Posted on Apr 2, 2022</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -144,6 +142,16 @@ When setting up the machine, I mostly went with all of the defaults. Configurati
|
||||
<h2 id="summary">Summary<a href="#summary" class="hanchor" ariaLabel="Anchor">#</a></h2>
|
||||
<p>It is fairly simple to setup a router with pfSense from within a virtual machine. A physical dedicated routing machine is not necessary and often does not perform as well as software running on faster and more reliable hardware. So far, pfSense has been running for over a week without a single hiccup. pfSense is a mature piece of software that is incredibly powerful and flexible. To avoid some of the instability I had experienced with OpenWrt, I enabled <a href="https://docs.netgate.com/pfsense/en/latest/backup/autoconfigbackup.html">AutoConfigBackup</a>, which is capable of automatically backing up configuration upon every change. I plan to explore and experiment with more services and configuration in the future, so the ability to track all of these changes gives me the peace of mind that experimentation is safe.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -191,18 +199,28 @@ When setting up the machine, I mostly went with all of the defaults. Configurati
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -215,7 +233,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2022/12/10/watching-youtube-in-private/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2022-12-10T21:46:55-05:00" />
|
||||
<meta property="article:modified_time" content="2022-12-10T21:46:55-05:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Watching YouTube in Private"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Watching YouTube in Private</h1>
|
||||
|
||||
<div class="meta">Posted on Dec 10, 2022</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -162,6 +160,16 @@ volumes:
|
||||
<p>Now the link <a href="https://www.youtube.com/watch?v=-lz30by8-sU">https://www.youtube.com/watch?v=-lz30by8-sU</a> will redirect to <a href="http://invidious:3000/watch?v=-lz30by8-sU">http://invidious:3000/watch?v=-lz30by8-sU</a></p>
|
||||
<p>I’m still looking for ways to improve this invidious setup. There doesn’t appear to be a way to stream in 4K yet.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -209,18 +217,28 @@ volumes:
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -233,7 +251,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2023-05-22T16:31:29-04:00" />
|
||||
<meta property="article:modified_time" content="2023-05-22T16:31:29-04:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Using AKS and SOCKS to connect to a Private Azure DB"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Using AKS and SOCKS to connect to a Private Azure DB</h1>
|
||||
|
||||
<div class="meta">Posted on May 22, 2023</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -145,6 +143,16 @@ pod/davegallant-proxy created
|
||||
<p>It would be nice if Azure provided tooling similar to cloud-sql-proxy, so that using private databases would be more of a convenient experience.</p>
|
||||
<p>One other thing to note is that some clients (such as <a href="https://dbeaver.io/">dbeaver</a>) <a href="https://github.com/dbeaver/dbeaver/issues/872">do not provide DNS resolution over SOCKS</a>. So in this case, you won’t be able to use DNS as if you were inside the cluster, but instead have to rely on knowing private ip addresses.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -204,18 +212,28 @@ pod/davegallant-proxy created
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -228,7 +246,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
<meta property="og:url" content="/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/" /><meta property="article:section" content="post" />
|
||||
<meta property="article:published_time" content="2023-12-10T17:22:11-05:00" />
|
||||
<meta property="article:modified_time" content="2023-12-10T17:22:11-05:00" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Setting Up Gitea Actions With Tailscale"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -19,7 +20,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -82,26 +83,23 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<div class="title">
|
||||
<h1 class="title">Setting Up Gitea Actions With Tailscale</h1>
|
||||
|
||||
<div class="meta">Posted on Dec 10, 2023</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,6 +243,16 @@ jobs:
|
||||
<p>Gitea Actions are fast and the resource footprint is minimal. My gitea instance is currently using around 250mb of memory and a small fraction of a single cpu core (and the runner is using a similar amount of resources). This is impressive since many alternatives tend to require substantionally more resources (ahem, gitlab). It likely helps that the codebase is largely written in go.</p>
|
||||
<p>By combining gitea with the networking marvel that is tailscale, running workflows becomes simple and fun. Whether you are working on a team or working alone, this setup ensures that your workflows are securely accessible from anywhere with an internet connection.</p></section>
|
||||
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
|
||||
|
||||
<div class="post-tags">
|
||||
|
||||
|
||||
@@ -288,18 +296,28 @@ jobs:
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -312,7 +330,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -9,6 +9,7 @@
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/categories/" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Categories"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -18,7 +19,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -81,19 +82,14 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
<h1 class="page-title">All tags</h1>
|
||||
@@ -132,18 +128,28 @@
|
||||
</div>
|
||||
</div>
|
||||
</section><footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -156,7 +162,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -6,6 +6,7 @@
|
||||
<description>Recent content in Categories on davegallant</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<copyright>Dave Gallant</copyright><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
<copyright>Dave Gallant</copyright>
|
||||
<atom:link href="/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
</channel>
|
||||
</rss>
|
||||
|
@@ -225,7 +225,7 @@ display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.tags li::before{
|
||||
content: "🏷 ";
|
||||
content: "- ";
|
||||
}
|
||||
.tags a{
|
||||
border-bottom: 3px solid var(--maincolor);
|
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.111.3">
|
||||
<meta name="generator" content="Hugo 0.120.3">
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"><title>davegallant | Home </title><link rel="icon" type="image/png" href=https://davegallant.ca/favicon.ico /><meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="" />
|
||||
@@ -11,6 +11,7 @@
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="davegallant"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -20,7 +21,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -85,19 +86,14 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
@@ -222,18 +218,28 @@
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -246,7 +252,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
@@ -7,114 +7,92 @@
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<copyright>Dave Gallant</copyright>
|
||||
<lastBuildDate>Sun, 10 Dec 2023 17:22:11 -0500</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Sun, 10 Dec 2023 17:22:11 -0500</lastBuildDate>
|
||||
<atom:link href="/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>About</title>
|
||||
<link>/about/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>/about/</guid>
|
||||
<description>I&rsquo;m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.</description>
|
||||
<description>I&rsquo;m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.
|
||||
Feel free to reach out at me@davegallant.ca.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Setting Up Gitea Actions With Tailscale</title>
|
||||
<link>/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/</link>
|
||||
<pubDate>Sun, 10 Dec 2023 17:22:11 -0500</pubDate>
|
||||
|
||||
<guid>/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Using AKS and SOCKS to connect to a Private Azure DB</title>
|
||||
<link>/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/</link>
|
||||
<pubDate>Mon, 22 May 2023 16:31:29 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Watching YouTube in Private</title>
|
||||
<link>/blog/2022/12/10/watching-youtube-in-private/</link>
|
||||
<pubDate>Sat, 10 Dec 2022 21:46:55 -0500</pubDate>
|
||||
|
||||
<guid>/blog/2022/12/10/watching-youtube-in-private/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Virtualizing My Router With pfSense</title>
|
||||
<link>/blog/2022/04/02/virtualizing-my-router-with-pfsense/</link>
|
||||
<pubDate>Sat, 02 Apr 2022 18:50:09 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2022/04/02/virtualizing-my-router-with-pfsense/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Backing Up Gmail With Synology</title>
|
||||
<link>/blog/2022/03/13/backing-up-gmail-with-synology/</link>
|
||||
<pubDate>Sun, 13 Mar 2022 18:49:10 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2022/03/13/backing-up-gmail-with-synology/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Running K3s in LXC on Proxmox</title>
|
||||
<link>/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/</link>
|
||||
<pubDate>Sun, 14 Nov 2021 10:07:03 -0500</pubDate>
|
||||
|
||||
<guid>/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Replacing docker with podman on macOS (and Linux)</title>
|
||||
<link>/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/</link>
|
||||
<pubDate>Mon, 11 Oct 2021 10:43:35 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Automatically Rotating AWS Access Keys</title>
|
||||
<link>/blog/2021/09/17/automatically-rotating-aws-access-keys/</link>
|
||||
<pubDate>Fri, 17 Sep 2021 12:48:33 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2021/09/17/automatically-rotating-aws-access-keys/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Why I Threw Out My Dotfiles</title>
|
||||
<link>/blog/2021/09/08/why-i-threw-out-my-dotfiles/</link>
|
||||
<pubDate>Wed, 08 Sep 2021 00:42:33 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2021/09/08/why-i-threw-out-my-dotfiles/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>What To Do With A Homelab</title>
|
||||
<link>/blog/2021/09/06/what-to-do-with-a-homelab/</link>
|
||||
<pubDate>Mon, 06 Sep 2021 01:12:54 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2021/09/06/what-to-do-with-a-homelab/</guid>
|
||||
<description><p>A homelab can be an inexpensive way to host a multitude of internal/external services and learn <em>a lot</em> in the process.</p></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>AppGate SDP on Arch Linux</title>
|
||||
<link>/blog/2020/03/16/appgate-sdp-on-arch-linux/</link>
|
||||
<pubDate>Mon, 16 Mar 2020 22:00:15 -0400</pubDate>
|
||||
|
||||
<guid>/blog/2020/03/16/appgate-sdp-on-arch-linux/</guid>
|
||||
<description><p>AppGate SDP provides a Zero Trust network. This post describes how to get AppGate SDP <code>4.3.2</code> working on Arch Linux.</p></description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
@@ -1,56 +0,0 @@
|
||||
==================================================================
|
||||
https://keybase.io/dgallant
|
||||
--------------------------------------------------------------------
|
||||
|
||||
I hereby claim:
|
||||
|
||||
* I am an admin of https://davegallant.github.io
|
||||
* I am dgallant (https://keybase.io/dgallant) on keybase.
|
||||
* I have a public key ASDIaXVCZNVLcI2nLjiVywkkpRY2wzTUb1nMiDsbGz1mFwo
|
||||
|
||||
To do so, I am signing this object:
|
||||
|
||||
{
|
||||
"body": {
|
||||
"key": {
|
||||
"eldest_kid": "0120132311ef8d70a8f35f284eb17a45cbcdf653ce040064dfd4a336d48e2dd3c5ee0a",
|
||||
"host": "keybase.io",
|
||||
"kid": "0120c869754264d54b708da72e3895cb0924a51636c334d46f59cc883b1b1b3d66170a",
|
||||
"uid": "117fb0e36a0168fe7c1cb75c32fa1119",
|
||||
"username": "dgallant"
|
||||
},
|
||||
"merkle_root": {
|
||||
"ctime": 1584423716,
|
||||
"hash": "a447336f6b4b3fdc7acd69bfb67724ba417d355c35dff289f0b71edd9a61eb0abca168842e35d030a7f72684961e284ff3e72169cccc822f123124ab1f28bae8",
|
||||
"hash_meta": "877e40ccac9c0bb3897269f3e270219cfc3b8f51b218249053cb9cef216394c6",
|
||||
"seqno": 15418771
|
||||
},
|
||||
"service": {
|
||||
"entropy": "GF5GAzsSwbL3MwyHTrWacqXg",
|
||||
"hostname": "davegallant.github.io",
|
||||
"protocol": "https:"
|
||||
},
|
||||
"type": "web_service_binding",
|
||||
"version": 2
|
||||
},
|
||||
"client": {
|
||||
"name": "keybase.io go client",
|
||||
"version": "5.3.0"
|
||||
},
|
||||
"ctime": 1584424574,
|
||||
"expire_in": 504576000,
|
||||
"prev": "09dc7ed70fa820ed3f8bcfaef95804ab477cc82a1f1de366e38e59ef611631b1",
|
||||
"seqno": 51,
|
||||
"tag": "signature"
|
||||
}
|
||||
|
||||
which yields the signature:
|
||||
|
||||
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgyGl1QmTVS3CNpy44lcsJJKUWNsM01G9ZzIg7Gxs9ZhcKp3BheWxvYWTESpcCM8QgCdx+1w+oIO0/i8+u+VgEq0d8yCofHeNm445Z72EWMbHEIATfVmncQJ7AOYvyF/Cmi0WNPdLXRg0owqqF/mgfpwa7AgHCo3NpZ8RASN9ahvUTPy4rvmYlLIwDzyu0fmUiNktCIi2VHDNQfLzzAKCPd6uh54dvGMtoB2JG4DZsRQN56PWx/auuGr5JC6hzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIEaFPIAAHow3jTSI4d1GnlmNomNiJPYzYNDjpGd5QMfDo3RhZ80CAqd2ZXJzaW9uAQ==
|
||||
|
||||
And finally, I am proving ownership of this host by posting or
|
||||
appending to this document.
|
||||
|
||||
View my publicly-auditable identity here: https://keybase.io/dgallant
|
||||
|
||||
==================================================================
|
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.111.3">
|
||||
<meta name="generator" content="Hugo 0.120.3">
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"><title>davegallant | Home </title><link rel="icon" type="image/png" href=https://davegallant.ca/favicon.ico /><meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="" />
|
||||
@@ -11,6 +11,7 @@
|
||||
<meta property="og:description" content="" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="davegallant"/>
|
||||
<meta name="twitter:description" content=""/>
|
||||
@@ -20,7 +21,7 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.0e5aa3b634b92d61bafebfd908290cc7a034e4d50e6a0c59ce50044560179c4e.css" />
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.b242ee667697ab3e792722deba86ca7575ca26cc470cedac147b7fd89e24b22f.css" />
|
||||
<link id="darkModeStyle" rel="stylesheet" type="text/css" href="/css/dark.0b62b6a8c9bc96baf3dd0b8690823918769e50f96220bad87969bb570d1febfe.css" disabled />
|
||||
|
||||
|
||||
@@ -85,19 +86,14 @@
|
||||
<a href="/about">About</a>
|
||||
|
||||
<a href="/index.xml">RSS</a>
|
||||
|
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</nav>
|
||||
</nav>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"
|
||||
></script>
|
||||
<script type="text/javascript">
|
||||
kofiwidget2.init("Buy me a coffee", "#a15bc2", "F1F2S4LWI");
|
||||
kofiwidget2.draw();
|
||||
</script>
|
||||
<span id="dark-mode-toggle" onclick="toggleTheme()"></span>
|
||||
<script src="/js/themetoggle.js"></script>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
@@ -132,18 +128,28 @@
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<div style="display:flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"><i data-feather="at-sign"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"><i data-feather="compass"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"><i data-feather="github"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"><i data-feather="speaker"></i></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"><i data-feather="linkedin"></i></a>
|
||||
<script src="https://storage.ko-fi.com/cdn/scripts/overlay-widget.js"></script>
|
||||
<div style="display: flex"><a class="soc" href="mailto:me@davegallant.ca" rel="me" title="Email"
|
||||
><i data-feather="at-sign"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://linktr.ee/davegallant" rel="me" title="LinkTree"
|
||||
><i data-feather="compass"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://github.com/davegallant" rel="me" title="GitHub"
|
||||
><i data-feather="github"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://mastodon.social/@davegallant" rel="me" title="Mastodon"
|
||||
><i data-feather="speaker"></i
|
||||
></a>
|
||||
<a class="border"></a><a class="soc" href="https://www.linkedin.com/in/dave-gallant/" rel="me" title="LinkedIn"
|
||||
><i data-feather="linkedin"></i
|
||||
></a>
|
||||
<a class="border"></a></div>
|
||||
<div class="footer-info">
|
||||
2023 Dave Gallant
|
||||
2023 Dave Gallant
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8WJDERTX9"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
@@ -156,7 +162,7 @@ if (!doNotTrack) {
|
||||
</script>
|
||||
|
||||
<script>
|
||||
feather.replace()
|
||||
feather.replace();
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
BIN
public/pagefind/fragment/unknown_10ede6f.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_10ede6f.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_1ac3449.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_1ac3449.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_244f5ca.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_244f5ca.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_25c26d6.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_25c26d6.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_2697917.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_2697917.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_26bb709.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_26bb709.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_2a9b6a9.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_2a9b6a9.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_2c22939.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_2c22939.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_2e7a346.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_2e7a346.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_311b8db.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_311b8db.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_35fd2ed.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_35fd2ed.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_363a8bf.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_363a8bf.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_3cf0bbe.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_3cf0bbe.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_3d396d5.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_3d396d5.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_3d8280d.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_3d8280d.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_3f1bb35.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_3f1bb35.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_41923ce.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_41923ce.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_43db594.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_43db594.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_473ef44.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_473ef44.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_4c31ca7.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_4c31ca7.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_4caaf73.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_4caaf73.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_50614a8.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_50614a8.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_526be06.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_526be06.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_5fb7ff2.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_5fb7ff2.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_618ba37.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_618ba37.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_6272873.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_6272873.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_669bf15.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_669bf15.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_67e137e.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_67e137e.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_6f23423.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_6f23423.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_7527775.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_7527775.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_774f56d.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_774f56d.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_799a1aa.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_799a1aa.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_7d8be93.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_7d8be93.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_80d735f.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_80d735f.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_8535391.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_8535391.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_8a8bc97.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_8a8bc97.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_8ac9bcb.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_8ac9bcb.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_8fb0cb9.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_8fb0cb9.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_9014c71.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_9014c71.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_90a6e15.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_90a6e15.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_937a27e.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_937a27e.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_9826b14.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_9826b14.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_98446f6.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_98446f6.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_9adf93c.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_9adf93c.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_9e7d4eb.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_9e7d4eb.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_a1985c5.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_a1985c5.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_a276768.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_a276768.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_a4baaea.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_a4baaea.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_adb1cf7.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_adb1cf7.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_af11557.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_af11557.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_b527e05.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_b527e05.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_c2c3a08.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_c2c3a08.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_c3607c4.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_c3607c4.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_c3ccb10.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_c3ccb10.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_c4baeb5.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_c4baeb5.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_d2a7bd3.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_d2a7bd3.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_d2af8a6.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_d2af8a6.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_d918dfa.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_d918dfa.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_dafe13d.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_dafe13d.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_e034fcb.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_e034fcb.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_ec79a1b.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_ec79a1b.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_ec851fa.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_ec851fa.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_ed6af06.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_ed6af06.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_f2d8283.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_f2d8283.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_f57bb0b.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_f57bb0b.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_f7366c3.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_f7366c3.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_f738427.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_f738427.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_f775986.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_f775986.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/unknown_f9cd78c.pf_fragment
Normal file
BIN
public/pagefind/fragment/unknown_f9cd78c.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/index/unknown_4acd235.pf_index
Normal file
BIN
public/pagefind/index/unknown_4acd235.pf_index
Normal file
Binary file not shown.
BIN
public/pagefind/index/unknown_61d5798.pf_index
Normal file
BIN
public/pagefind/index/unknown_61d5798.pf_index
Normal file
Binary file not shown.
1
public/pagefind/pagefind-entry.json
Normal file
1
public/pagefind/pagefind-entry.json
Normal file
@@ -0,0 +1 @@
|
||||
{"version":"1.0.4","languages":{"unknown":{"hash":"unknown_41ac7633ccfabd8","wasm":null,"page_count":69}}}
|
1069
public/pagefind/pagefind-highlight.js
Normal file
1069
public/pagefind/pagefind-highlight.js
Normal file
File diff suppressed because it is too large
Load Diff
214
public/pagefind/pagefind-modular-ui.css
Normal file
214
public/pagefind/pagefind-modular-ui.css
Normal file
@@ -0,0 +1,214 @@
|
||||
:root {
|
||||
--pagefind-ui-scale: 0.8;
|
||||
--pagefind-ui-primary: #034AD8;
|
||||
--pagefind-ui-fade: #707070;
|
||||
--pagefind-ui-text: #393939;
|
||||
--pagefind-ui-background: #ffffff;
|
||||
--pagefind-ui-border: #eeeeee;
|
||||
--pagefind-ui-tag: #eeeeee;
|
||||
--pagefind-ui-border-width: 2px;
|
||||
--pagefind-ui-border-radius: 8px;
|
||||
--pagefind-ui-image-border-radius: 8px;
|
||||
--pagefind-ui-image-box-ratio: 3 / 2;
|
||||
--pagefind-ui-font: system, -apple-system, ".SFNSText-Regular",
|
||||
"San Francisco", "Roboto", "Segoe UI", "Helvetica Neue",
|
||||
"Lucida Grande", sans-serif;
|
||||
}
|
||||
|
||||
[data-pfmod-hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
[data-pfmod-suppressed] {
|
||||
opacity: 0 !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
[data-pfmod-sr-hidden] {
|
||||
-webkit-clip: rect(0 0 0 0) !important;
|
||||
clip: rect(0 0 0 0) !important;
|
||||
-webkit-clip-path: inset(100%) !important;
|
||||
clip-path: inset(100%) !important;
|
||||
height: 1px !important;
|
||||
overflow: hidden !important;
|
||||
overflow: clip !important;
|
||||
position: absolute !important;
|
||||
white-space: nowrap !important;
|
||||
width: 1px !important;
|
||||
}
|
||||
|
||||
[data-pfmod-loading] {
|
||||
color: var(--pagefind-ui-text);
|
||||
background-color: var(--pagefind-ui-text);
|
||||
border-radius: var(--pagefind-ui-border-radius);
|
||||
opacity: 0.1;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Input */
|
||||
|
||||
.pagefind-modular-input-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pagefind-modular-input-wrapper::before {
|
||||
background-color: var(--pagefind-ui-text);
|
||||
width: calc(18px * var(--pagefind-ui-scale));
|
||||
height: calc(18px * var(--pagefind-ui-scale));
|
||||
top: calc(23px * var(--pagefind-ui-scale));
|
||||
left: calc(20px * var(--pagefind-ui-scale));
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
opacity: 0.7;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");
|
||||
-webkit-mask-size: 100%;
|
||||
mask-size: 100%;
|
||||
z-index: 9;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.pagefind-modular-input {
|
||||
height: calc(64px * var(--pagefind-ui-scale));
|
||||
padding: 0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));
|
||||
background-color: var(--pagefind-ui-background);
|
||||
border: var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);
|
||||
border-radius: var(--pagefind-ui-border-radius);
|
||||
font-size: calc(21px * var(--pagefind-ui-scale));
|
||||
position: relative;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.pagefind-modular-input::placeholder {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
.pagefind-modular-input-clear {
|
||||
position: absolute;
|
||||
top: calc(2px * var(--pagefind-ui-scale));
|
||||
right: calc(2px * var(--pagefind-ui-scale));
|
||||
height: calc(60px * var(--pagefind-ui-scale));
|
||||
border-radius: var(--pagefind-ui-border-radius);
|
||||
padding: 0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));
|
||||
color: var(--pagefind-ui-text);
|
||||
font-size: calc(14px * var(--pagefind-ui-scale));
|
||||
cursor: pointer;
|
||||
background-color: var(--pagefind-ui-background);
|
||||
border: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
/* ResultList */
|
||||
|
||||
.pagefind-modular-list-result {
|
||||
list-style-type: none;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: min(calc(40px * var(--pagefind-ui-scale)), 3%);
|
||||
padding: calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));
|
||||
border-top: solid var(--pagefind-ui-border-width) var(--pagefind-ui-border);
|
||||
}
|
||||
|
||||
.pagefind-modular-list-result:last-of-type {
|
||||
border-bottom: solid var(--pagefind-ui-border-width) var(--pagefind-ui-border);
|
||||
}
|
||||
|
||||
.pagefind-modular-list-thumb {
|
||||
width: min(30%,
|
||||
calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));
|
||||
max-width: calc(120px * var(--pagefind-ui-scale));
|
||||
margin-top: calc(10px * var(--pagefind-ui-scale));
|
||||
aspect-ratio: var(--pagefind-ui-image-box-ratio);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pagefind-modular-list-image {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
font-size: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
border-radius: var(--pagefind-ui-image-border-radius);
|
||||
}
|
||||
|
||||
.pagefind-modular-list-inner {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
margin-top: calc(10px * var(--pagefind-ui-scale));
|
||||
}
|
||||
|
||||
.pagefind-modular-list-title {
|
||||
display: inline-block;
|
||||
font-weight: 700;
|
||||
font-size: calc(21px * var(--pagefind-ui-scale));
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.pagefind-modular-list-link {
|
||||
color: var(--pagefind-ui-text);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.pagefind-modular-list-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.pagefind-modular-list-excerpt {
|
||||
display: inline-block;
|
||||
font-weight: 400;
|
||||
font-size: calc(16px * var(--pagefind-ui-scale));
|
||||
margin-top: calc(4px * var(--pagefind-ui-scale));
|
||||
margin-bottom: 0;
|
||||
min-width: calc(250px * var(--pagefind-ui-scale));
|
||||
}
|
||||
|
||||
/* FilterPills */
|
||||
|
||||
.pagefind-modular-filter-pills-wrapper {
|
||||
overflow-x: scroll;
|
||||
padding: 15px 0;
|
||||
}
|
||||
|
||||
.pagefind-modular-filter-pills {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.pagefind-modular-filter-pill {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: none;
|
||||
appearance: none;
|
||||
padding: 0 calc(24px * var(--pagefind-ui-scale));
|
||||
background-color: var(--pagefind-ui-background);
|
||||
color: var(--pagefind-ui-fade);
|
||||
border: var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);
|
||||
border-radius: calc(25px * var(--pagefind-ui-scale));
|
||||
font-size: calc(18px * var(--pagefind-ui-scale));
|
||||
height: calc(50px * var(--pagefind-ui-scale));
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.pagefind-modular-filter-pill:hover {
|
||||
border-color: var(--pagefind-ui-primary);
|
||||
}
|
||||
|
||||
.pagefind-modular-filter-pill[aria-pressed="true"] {
|
||||
border-color: var(--pagefind-ui-primary);
|
||||
color: var(--pagefind-ui-primary);
|
||||
}
|
8
public/pagefind/pagefind-modular-ui.js
Normal file
8
public/pagefind/pagefind-modular-ui.js
Normal file
File diff suppressed because one or more lines are too long
1
public/pagefind/pagefind-ui.css
Normal file
1
public/pagefind/pagefind-ui.css
Normal file
File diff suppressed because one or more lines are too long
2
public/pagefind/pagefind-ui.js
Normal file
2
public/pagefind/pagefind-ui.js
Normal file
File diff suppressed because one or more lines are too long
9
public/pagefind/pagefind.js
Normal file
9
public/pagefind/pagefind.js
Normal file
File diff suppressed because one or more lines are too long
BIN
public/pagefind/pagefind.unknown_41ac7633ccfabd8.pf_meta
Normal file
BIN
public/pagefind/pagefind.unknown_41ac7633ccfabd8.pf_meta
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user