267 lines
13 KiB
HTML
267 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" dir="auto">
|
||
|
||
<head>
|
||
<meta name="generator" content="Hugo 0.119.0"><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 & 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+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 & 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 & 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="./new-website-cover.png" alt="Add explainshell.com to your list of favorite websites! Right behind regex101.com.">
|
||
</figure>
|
||
<header class="entry-header">
|
||
<h2>New Favorite Website!
|
||
</h2>
|
||
</header>
|
||
<div class="entry-content">
|
||
<p>For the longest time, I had Regex101 as a bookmarked website for (almost) daily use. Not only does it help me build muscle memory for using regex queries without banging my head against the wall with a bunch of print and debug statements, but if I happen to be in a different language - say in javascript instead of python - it gives you the correct syntax for using regex in that language....</p>
|
||
</div>
|
||
<footer class="entry-footer"><span title='2023-09-27 10:07:01 -0400 EDT'>September 27, 2023</span> · 2 min · 377 words · Me</footer>
|
||
<a class="entry-link" aria-label="post link to New Favorite Website!" href="./posts/new-favorite-website.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 & and a Self-hosted Git Repo? Here’s how I’ve 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, I’ve 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> · 2 min · 403 words · 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 I’m 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> · 5 min · 888 words · 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> · 8 min · 1635 words · 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>© 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>
|