Files
rsmsn_blog/public/index.html
2023-09-25 17:19:09 -04:00

268 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" dir="auto">
<head>
<meta name="generator" content="Hugo 0.118.2"><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Norm-working Packets 💾</title>
<meta name="keywords" content="Blog, Website, Resume, Interests, Portfolio, Selfhosted, DIY">
<meta name="description" content="A semi-technical blog &amp; series of experiences working in tech and my homelab">
<meta name="author" content="Norm Rasmussen">
<link rel="canonical" href="./">
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U&#43;6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
<link rel="icon" href="./favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
<link rel="apple-touch-icon" href="./apple-touch-icon.png">
<link rel="mask-icon" href="./safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="./index.xml">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
</noscript>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-X8VR5M0K20"></script>
<script>
var doNotTrack = false;
if (!doNotTrack) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-X8VR5M0K20', { 'anonymize_ip': false });
}
</script>
<meta property="og:title" content="Norm-working Packets 💾" />
<meta property="og:description" content="A semi-technical blog &amp; series of experiences working in tech and my homelab" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" /><meta property="og:site_name" content="Norm-working Packets" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Norm-working Packets 💾"/>
<meta name="twitter:description" content="A semi-technical blog &amp; series of experiences working in tech and my homelab"/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Norm-working Packets 💾",
"url": "/",
"description": "A semi-technical blog \u0026amp; series of experiences working in tech and my homelab",
"thumbnailUrl": "/favicon.ico",
"sameAs": [
"https://fosstodon.org/@notnorm", "https://github.com/Normanras"
]
}
</script>
</head>
<body class="list dark" id="top">
<script>
if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="./" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
</ul>
</nav>
</header>
<main class="main">
<article class="first-entry home-info">
<header class="entry-header">
<h1>Hey there, stranger! 👋</h1>
</header>
<div class="entry-content">
Welcome to my running collection of tips, tricks, and scripts about self-hosting and DIY.
</div>
<footer class="entry-footer">
<div class="social-icons">
<a href="https://fosstodon.org/@notnorm" target="_blank" rel="noopener noreferrer me" title="Mastodon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M21.58 13.913c-.29 1.469-2.592 3.121-5.238 3.396-1.379.184-2.737.368-4.185.276-2.368-.092-4.237-.551-4.237-.551 0 .184.014.459.043.643.308 2.294 2.317 2.478 4.22 2.57 1.922 0 3.633-.46 3.633-.46l.079 1.653s-1.344.734-3.738.918c-1.32.091-2.96-.092-4.869-.551-4.14-1.102-4.853-5.507-4.961-10.005-.034-1.285-.013-2.57-.013-3.58 0-4.589 3-5.966 3-5.966 1.513-.734 4.11-1.01 6.808-1.01h.067c2.699 0 5.296.276 6.81 1.01 0 0 3 1.377 3 5.967 0 0 .037 3.304-.419 5.69"
stroke="currentColor" />
<path
d="M17.832 8.633v5h-1.978V8.78c0-1.023-.43-1.542-1.29-1.542-.95 0-1.427.616-1.427 1.834v2.655H11.17V9.072c0-1.218-.476-1.834-1.427-1.834-.86 0-1.29.52-1.29 1.542v4.852H6.475V8.633c0-1.022.26-1.834.782-2.434.538-.6 1.243-.909 2.118-.909 1.012 0 1.779.39 2.286 1.169l.492.827.493-.827c.507-.78 1.274-1.169 2.286-1.169.875 0 1.58.308 2.118.909.522.6.782 1.412.782 2.434"
fill="currentColor" stroke="none" />
</svg>
</a>
<a href="https://github.com/Normanras" target="_blank" rel="noopener noreferrer me" title="Github">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
</path>
</svg>
</a>
</div>
</footer>
</article>
<article class="post-entry">
<figure class="entry-cover"><img loading="lazy" src="./birdnet-homeassistant.png" alt="BirdNET-Pi and HomeAssistant: Happier together!">
</figure>
<header class="entry-header">
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
</h2>
</header>
<div class="entry-content">
<p>This is Part One of a Two Part Series. You can find Part Two, here.
What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquitto) Background In early 2023, at the height of the Raspberry Pi shortage I felt like a king with an extra Rpi laying around, not being used. Im a big fan of any sort of passive intake of information and had been looking around for various citizen science-style projects that can capture information from the world around me....</p>
</div>
<footer class="entry-footer"><span title='2023-09-25 12:51:55 -0400 EDT'>September 25, 2023</span>&nbsp;·&nbsp;10 min&nbsp;·&nbsp;1953 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Creating a BirdNetPi Dashboard in HomeAssistant - Part 1" href="./posts/birdnet_homeassistant.html"></a>
</article>
<article class="post-entry">
<figure class="entry-cover"><img loading="lazy" src="./multiple-git-cover-img.png" alt="git commands">
</figure>
<header class="entry-header">
<h2>Pushing a Single Local Git Repo to Multiple Remote Repos
</h2>
</header>
<div class="entry-content">
<p>Why push to multiple repos? Do want to use both Github &amp; and a Self-hosted Git Repo? Heres how Ive been doing it!
I really enjoy self-hosting services that I use everyday. One of those includes a git-style version control software. In my case, Ive been running Gitea for a few years now and have been really satisfied with everything (except for that one time that an update broke all my templates)....</p>
</div>
<footer class="entry-footer"><span title='2023-09-22 15:07:10 -0400 EDT'>September 22, 2023</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;403 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Pushing a Single Local Git Repo to Multiple Remote Repos" href="./posts/multiple_git_remotes.html"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>Trouble Hosting Hugo with Nginx
</h2>
</header>
<div class="entry-content">
<p>Intro For the last 3 days, I have been spending a few hours after working trying to figure out why my brand new Hugo site was not loading correctly on my sub-domain. For context, I use Nginx to host all my apps and servers, most of them using reverse proxy protocols such as $proxy_host, $forward_scheme, and $port. There are a few more and Im happy to share some reverse proxy nginx config files....</p>
</div>
<footer class="entry-footer"><span title='2023-09-20 11:33:22 -0400 EDT'>September 20, 2023</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;888 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Trouble Hosting Hugo with Nginx" href="./posts/hosting_hugo_troubles.html"></a>
</article>
<article class="post-entry">
<figure class="entry-cover"><img loading="lazy" src="./npm_to_nginx.png" alt="NginxProxyManger to Nginx">
</figure>
<header class="entry-header">
<h2>Tutorial: Move from NginxProxyManager to Nginx
</h2>
</header>
<div class="entry-content">
<p>Goal A Tutorial Repo for migrating your Nginx Proxy Manager proxy setup to Nginx. I wrote this originally for this reddit post and to post this my Github profile. Thought my website would also be a good place to share it for any passers-by.
To give clear instructions to help users migrate from using Nginx Proxy Manager (NPM) to standard Nginx. This tutorial is not exhaustive and there are many other implementations of this transition....</p>
</div>
<footer class="entry-footer"><span title='2023-08-05 15:23:51 -0500 -0500'>August 5, 2023</span>&nbsp;·&nbsp;8 min&nbsp;·&nbsp;1635 words&nbsp;·&nbsp;Me</footer>
<a class="entry-link" aria-label="post link to Tutorial: Move from NginxProxyManager to Nginx" href="./posts/npm_to_nginx_tutorial.html"></a>
</article>
</main>
<footer class="footer">
<span>&copy; 2023 <a href="./">Norm-working Packets 💾</a></span>
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>