Cleaned up the image files. Cover images go under /static and in-post images are now in /content/posts/img. Edited and rebuilt some existing posts for this structure. I also removed my birdnet post and put it back in drafts so I can publish it as some future date.
BIN
static/.DS_Store → .DS_Store
vendored
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "themes/hugo-shortcode-roneo-collection"]
|
||||||
|
path = themes/hugo-shortcode-roneo-collection
|
||||||
|
url = https://gitlab.com/Roneo/hugo-shortcode-roneo-collection.git
|
||||||
@ -5,7 +5,7 @@ tags: [""]
|
|||||||
author: "Me"
|
author: "Me"
|
||||||
showToc: true
|
showToc: true
|
||||||
TocOpen: false
|
TocOpen: false
|
||||||
draft: false
|
draft: true
|
||||||
hidemeta: false
|
hidemeta: false
|
||||||
description: '{{ .File.ContentBaseName }}'
|
description: '{{ .File.ContentBaseName }}'
|
||||||
disableHLJS: true # to disable highlightjs
|
disableHLJS: true # to disable highlightjs
|
||||||
@ -20,9 +20,9 @@ ShowWordCount: true
|
|||||||
ShowRssButtonInSectionTermList: true
|
ShowRssButtonInSectionTermList: true
|
||||||
UseHugoToc: true
|
UseHugoToc: true
|
||||||
cover:
|
cover:
|
||||||
image: "<image path/url>" # image path/url
|
image: "<image path/url>"
|
||||||
alt: "<alt text>" # alt text
|
alt: "<alt text>"
|
||||||
caption: "<text>" # display caption under cover
|
caption: "<text>"
|
||||||
relative: false # when using page bundles set this to true
|
relative: false
|
||||||
hidden: true # only hide on current single page
|
hidden: true
|
||||||
---
|
---
|
||||||
|
|||||||
@ -5,7 +5,7 @@ tags: ["homeassistant", "python", "diy"]
|
|||||||
author: "Me"
|
author: "Me"
|
||||||
showToc: true
|
showToc: true
|
||||||
TocOpen: false
|
TocOpen: false
|
||||||
draft: false
|
draft: true
|
||||||
hidemeta: false
|
hidemeta: false
|
||||||
description: 'Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.'
|
description: 'Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.'
|
||||||
disableHLJS: true # to disable highlightjs
|
disableHLJS: true # to disable highlightjs
|
||||||
@ -83,7 +83,7 @@ information that is pertinent to your own uses.
|
|||||||
|
|
||||||
Here is how I've setup my MQTT payload from BirdNET-Pi Settings:
|
Here is how I've setup my MQTT payload from BirdNET-Pi Settings:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Here it is in text form:
|
Here it is in text form:
|
||||||
|
|
||||||
|
|||||||
BIN
content/posts/img/birdnet-homeassistant.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
BIN
content/posts/img/explain-shell-homepage.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
content/posts/img/explain-shell-interface.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
75
content/posts/new-favorite-website.md
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
title: 'New Favorite Website!'
|
||||||
|
date: 2023-09-27T10:07:01-04:00
|
||||||
|
tags: ["resources", "shell", "commandline"]
|
||||||
|
author: "Me"
|
||||||
|
showToc: false
|
||||||
|
TocOpen: false
|
||||||
|
draft: false
|
||||||
|
hidemeta: false
|
||||||
|
description: 'Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.'
|
||||||
|
disableHLJS: true # to disable highlightjs
|
||||||
|
disableShare: false
|
||||||
|
disableHLJS: false
|
||||||
|
hideSummary: false
|
||||||
|
searchHidden: true
|
||||||
|
ShowReadingTime: true
|
||||||
|
ShowBreadCrumbs: true
|
||||||
|
ShowPostNavLinks: true
|
||||||
|
ShowWordCount: true
|
||||||
|
ShowRssButtonInSectionTermList: true
|
||||||
|
UseHugoToc: true
|
||||||
|
cover:
|
||||||
|
image: "new-website-cover.png"
|
||||||
|
alt: "Add explainshell.com to your list of favorite websites! Right behind regex101.com."
|
||||||
|
caption: "ExplainShell and Regex101 are the most needed tools in your arsenal."
|
||||||
|
relative: false # when using page bundles set this to true
|
||||||
|
hidden: true # only hide on current single page
|
||||||
|
---
|
||||||
|
|
||||||
|
For the longest time, I had [Regex101](www.regex101.com) 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. There are even [spin-off projects](https://github.com/nedrysoft/regex101) to use
|
||||||
|
this tool while offline.
|
||||||
|
|
||||||
|
You can even test it again the strings you do (or don't!) want to verify against. This website is beyond cool.
|
||||||
|
|
||||||
|
So this morning, when I saw [Jérémy Garniaux](https://mapstodon.space/@jeremy) ask if there was an "explain shell" for Vim or
|
||||||
|
Neovim, this was the Regex101 but for shell commands.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
src="https://mapstodon.space/@jeremy/111135981133166060/embed"
|
||||||
|
width="100%" height="400px" style="border:none;"></iframe>
|
||||||
|
|
||||||
|
|
||||||
|
{{< box info >}}
|
||||||
|
_Side Note: it took me way too long how to figure out how to embed an iframe directly into Hugo without creating a new shortcode template and other suggestions. I'll be sure to post about that in the future._
|
||||||
|
{{< /box >}}
|
||||||
|
|
||||||
|
When you first load ExplainShell.com, you're greeted with a clean, minimal interface with some explanation and a very obvious
|
||||||
|
search bar.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For those new to the command line, it also shares some suggested queries to search with. As you read over the results, you
|
||||||
|
can hover on the different elements of the command and it will highlight the explanation below. I mean, look at how clean and
|
||||||
|
nice that is!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As many other command line users are apt to do, I use the man page all the time for commands and flags I'm unsure of, or need
|
||||||
|
a refresher on. While knowing what a certain flag is and what it does for a specific command is supremely helpful, I find the
|
||||||
|
man pages a tad bit overwhelming. You can always `grep` for what you're looking for, but even then I've found times where it
|
||||||
|
only pulls out half of the full description, or even just the line the definition is on.
|
||||||
|
|
||||||
|
So the fact that this resources can extract exactly what you need in your command from a man page without digging through
|
||||||
|
every line, is extremely useful! Going back to Jérémy's original toot and question... who is going to make this same tool for
|
||||||
|
Neovim?
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.box-shortcode {
|
||||||
|
color: #e8e8e8;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
67
content/posts/useful-commands.md
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
title: 'Useful Commands'
|
||||||
|
date: 2023-09-26T12:04:05-04:00
|
||||||
|
tags: ["shell", "script", "command line"]
|
||||||
|
author: "Me"
|
||||||
|
endbleGitInfo: true
|
||||||
|
showToc: true
|
||||||
|
TocOpen: false
|
||||||
|
draft: true
|
||||||
|
hidemeta: false
|
||||||
|
description: 'A collection and living document of useful shell commands that I use.'
|
||||||
|
disableHLJS: true # to disable highlightjs
|
||||||
|
disableShare: false
|
||||||
|
disableHLJS: false
|
||||||
|
hideSummary: false
|
||||||
|
searchHidden: true
|
||||||
|
ShowReadingTime: true
|
||||||
|
ShowBreadCrumbs: true
|
||||||
|
ShowPostNavLinks: true
|
||||||
|
ShowWordCount: true
|
||||||
|
ShowRssButtonInSectionTermList: true
|
||||||
|
UseHugoToc: true
|
||||||
|
cover:
|
||||||
|
image: "useful_commands.png" # image path/url
|
||||||
|
alt: "<alt text>" # alt text
|
||||||
|
caption: "<text>" # display caption under cover
|
||||||
|
relative: false # when using page bundles set this to true
|
||||||
|
hidden: true # only hide on current single page
|
||||||
|
---
|
||||||
|
|
||||||
|
This post will act a bit like a living document of all the useful commands and short scripts that I use regularly. Some will
|
||||||
|
be as simple as `ls | wc -l` which counts the number of files in your current working directory, and others will be better
|
||||||
|
suited to small scripts. As this grows, I will hopefully break these into more logical categories.
|
||||||
|
|
||||||
|
## Find by File type
|
||||||
|
|
||||||
|
This command will find every file in your current working directory by the specified file extension.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
find . -type f -name '*.txt'
|
||||||
|
```
|
||||||
|
|
||||||
|
As a bonus, if you wanted find everything _except_ that file extension, you can add a `!` before name. In other words:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
find . type -f ! -name '*.txt'
|
||||||
|
```
|
||||||
|
|
||||||
|
I usually use commands like this to clean up files that I don't need, be it file extensions I don't need anymore, or anything
|
||||||
|
with a specific word in its file name, so adding `-delete` at the end of the command lets me delete those files.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
find . type -f -name '*.txt' -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
## List Files & Dir +
|
||||||
|
|
||||||
|
Using `ls` is a _key_ command for anyone that works within a command line. If you've used `ls` before, then you've also
|
||||||
|
likely used or created an alias for `ls -la` which will display the files, their user:group ownership, permissions
|
||||||
|
(`drwxrwxrwx`) and dates created + modified.
|
||||||
|
|
||||||
|
What if you just want to found the number of files? Not measuring disk usage or free space, but the equivalent of `len` for
|
||||||
|
an array, the array being your current working directory. Enter `wc`!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ls | wc- l
|
||||||
|
```
|
||||||
2
go.sum
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
github.com/martignoni/hugo-notice v0.0.0-20230829114050-2d7d7460bc60 h1:cPU84OKIQJMEfuvgbAem94J5YDn3UBDrth17VM9I0QA=
|
||||||
|
github.com/martignoni/hugo-notice v0.0.0-20230829114050-2d7d7460bc60/go.mod h1:MIQPOMgEcbyRC0gNLzQFSgrS+wIy3RuQ/HbaZYtTOKU=
|
||||||
15
hugo.yaml
@ -10,6 +10,18 @@ paginate: 7
|
|||||||
|
|
||||||
googleAnalytics: G-X8VR5M0K20
|
googleAnalytics: G-X8VR5M0K20
|
||||||
|
|
||||||
|
# Allow html to be rendered in Markdown files
|
||||||
|
markup:
|
||||||
|
goldmark:
|
||||||
|
renderer:
|
||||||
|
unsafe: true
|
||||||
|
|
||||||
|
# Various Module Imports
|
||||||
|
module:
|
||||||
|
imports:
|
||||||
|
# - path: github.com/martignoni/hugo-notice
|
||||||
|
- path: hugo-shortcode-roneo-collection
|
||||||
|
|
||||||
params:
|
params:
|
||||||
env: production
|
env: production
|
||||||
title: Norm-working Packets
|
title: Norm-working Packets
|
||||||
@ -30,6 +42,3 @@ params:
|
|||||||
url: "https://fosstodon.org/@notnorm"
|
url: "https://fosstodon.org/@notnorm"
|
||||||
- name: "Github"
|
- name: "Github"
|
||||||
url: "https://github.com/Normanras"
|
url: "https://github.com/Normanras"
|
||||||
# analytics:
|
|
||||||
# google:
|
|
||||||
# SiteVerificationTag:
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 238 KiB |
45
public/bundle.min.js
vendored
@ -1,134 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<title>Categories :: Rsmsn Blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
|
|
||||||
<meta name="robots" content="noodp" />
|
|
||||||
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/categories/" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://selfhosted.rsmsn.co/styles.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
<link rel="apple-touch-icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:locale" content="en" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:title" content="Categories">
|
|
||||||
<meta property="og:description" content="" />
|
|
||||||
<meta property="og:url" content="https://selfhosted.rsmsn.co/categories/" />
|
|
||||||
<meta property="og:site_name" content="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image" content="img/favicon/%!s().png">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="627">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link href="../categories/index.xml" rel="alternate" type="application/rss+xml" title="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container headings--one-size">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/">
|
|
||||||
<div class="logo">
|
|
||||||
Terminal
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="terms">
|
|
||||||
<h1>Categories</h1>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<span>© 2023 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
|
||||||
|
|
||||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="../bundle.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
Before Width: | Height: | Size: 189 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 189 B |
@ -2,7 +2,7 @@
|
|||||||
<html lang="en" dir="auto">
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta name="generator" content="Hugo 0.118.2"><meta charset="utf-8">
|
<meta name="generator" content="Hugo 0.119.0"><meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
@ -137,18 +137,17 @@ if (!doNotTrack) {
|
|||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="post-entry">
|
<article class="post-entry">
|
||||||
<figure class="entry-cover"><img loading="lazy" src="./birdnet-homeassistant.png" alt="BirdNET-Pi and HomeAssistant: Happier together!">
|
<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>
|
</figure>
|
||||||
<header class="entry-header">
|
<header class="entry-header">
|
||||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
<h2>New Favorite Website!
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<div class="entry-content">
|
||||||
<p>This is Part One of a Two Part Series. You can find Part Two, here.
|
<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>
|
||||||
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. I’m 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>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2023-09-25 12:51:55 -0400 EDT'>September 25, 2023</span> · 10 min · 1953 words · Me</footer>
|
<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 Creating a BirdNetPi Dashboard in HomeAssistant - Part 1" href="./posts/birdnet_homeassistant.html"></a>
|
<a class="entry-link" aria-label="post link to New Favorite Website!" href="./posts/new-favorite-website.html"></a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="post-entry">
|
<article class="post-entry">
|
||||||
|
|||||||
@ -6,14 +6,14 @@
|
|||||||
<description>Recent content on Norm-working Packets 💾</description>
|
<description>Recent content on Norm-working Packets 💾</description>
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<lastBuildDate>Mon, 25 Sep 2023 12:51:55 -0400</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
|
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
<title>New Favorite Website!</title>
|
||||||
<link>/posts/birdnet_homeassistant.html</link>
|
<link>/posts/new-favorite-website.html</link>
|
||||||
<pubDate>Mon, 25 Sep 2023 12:51:55 -0400</pubDate>
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
<guid>/posts/new-favorite-website.html</guid>
|
||||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
let isSidebarExpand=!1,isSidebarShow=!1;function isSidebarExpandStart(){isSidebarExpand=!0}function isSidebarExpandEnd(){isSidebarExpand=!1}function isSidebarExpanding(e){if(!isSidebarExpand)return;const t=e.pageX/window.innerWidth*100;if(t>10&&t<50){const e=100-t;document.querySelector("aside.sidebar").style.width=`${t}%`;const n=getComputedStyle(document.querySelector("article.main")).getPropertyValue("--artile_main_width"),s=n.replace(/[\d.]+/,e);document.querySelector("article.main").style.setProperty("--artile_main_width",s)}}function showSidebar(){document.querySelector("aside.sidebar").style.display="block",isSidebarShow=!0,document.querySelector("button.sidebar-toggle-btn").setAttribute("aria-expanded","true")}function hideSidebar(){isSidebarShow&&(document.querySelector("aside.sidebar").style.display="",isSidebarShow=!1,document.querySelector("button.sidebar-toggle-btn").setAttribute("aria-expanded","false"))}window.addEventListener("load",function(){document.querySelectorAll("button.copy-button").forEach(e=>{e.addEventListener("click",e=>{let t=e.currentTarget;t.getAttribute("state")==="copy"&&(navigator.clipboard.writeText(decodeURI(t.getAttribute("data"))),t.setAttribute("state","copied"),t.textContent="Copied !",window.setTimeout(()=>{t.setAttribute("state","copy"),t.textContent="Copy"},3*1e3))})}),document.querySelector("aside.exapandable").addEventListener("mousedown",isSidebarExpandStart),document.querySelector("aside.exapandable").addEventListener("touchstart",isSidebarExpandStart),window.addEventListener("mousemove",isSidebarExpanding),window.addEventListener("touchmove",isSidebarExpanding),window.addEventListener("mouseup",isSidebarExpandEnd),window.addEventListener("touchend",isSidebarExpandEnd),document.querySelector("button.sidebar-toggle-btn").addEventListener("click",e=>{e.stopPropagation(),e.preventDefault(),e.currentTarget.getAttribute("aria-expanded")==="true"?hideSidebar():showSidebar()}),this.document.querySelector("article.main").addEventListener("click",hideSidebar),this.document.querySelector("article.main").addEventListener("touchstart",hideSidebar),this.document.querySelector("article.main").addEventListener("mousedown",hideSidebar),this.window.addEventListener("resize",()=>{window.innerWidth>900&&(isSidebarShow=!1,document.querySelector("aside.sidebar").style.display="",document.querySelector("button.sidebar-toggle-btn").setAttribute("aria-expanded","false"))}),this.window.addEventListener("resize",()=>{let e=document.querySelector("article.main");const t=e.style.getPropertyValue("--artile_main_width");if(t){const n=t.match(/[\d.]+/)[0];e.style.setProperty("--artile_main_width","");const s=getComputedStyle(e).getPropertyValue("--artile_main_width").replace(/[\d.]+/,n);e.style.setProperty("--artile_main_width",s)}}),document.querySelectorAll("li.dir > span.dir-text").forEach(e=>{e.addEventListener("click",function(){this.parentNode.classList.toggle("opened-dir"),this.parentNode.classList.toggle("closed-dir")})})})
|
|
||||||
BIN
public/new-website-cover.png
Normal file
|
After Width: | Height: | Size: 325 KiB |
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>https://selfhosted.rsmsn.co/</title>
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://selfhosted.rsmsn.co/">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -111,18 +111,17 @@ if (!doNotTrack) {
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<article class="post-entry">
|
<article class="post-entry">
|
||||||
<figure class="entry-cover"><img loading="lazy" src="./birdnet-homeassistant.png" alt="BirdNET-Pi and HomeAssistant: Happier together!">
|
<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>
|
</figure>
|
||||||
<header class="entry-header">
|
<header class="entry-header">
|
||||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
<h2>New Favorite Website!
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<div class="entry-content">
|
||||||
<p>This is Part One of a Two Part Series. You can find Part Two, here.
|
<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>
|
||||||
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. I’m 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>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2023-09-25 12:51:55 -0400 EDT'>September 25, 2023</span> · 10 min · 1953 words · Me</footer>
|
<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 Creating a BirdNetPi Dashboard in HomeAssistant - Part 1" href="./posts/birdnet_homeassistant.html"></a>
|
<a class="entry-link" aria-label="post link to New Favorite Website!" href="./posts/new-favorite-website.html"></a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="post-entry">
|
<article class="post-entry">
|
||||||
|
|||||||
@ -228,7 +228,7 @@ are the possible variables you can pass in an MQTT payload:</p>
|
|||||||
process is extremely customizable, which you’ll learn more about in the AppDaemon section. Please expand on it and include
|
process is extremely customizable, which you’ll learn more about in the AppDaemon section. Please expand on it and include
|
||||||
information that is pertinent to your own uses.</p>
|
information that is pertinent to your own uses.</p>
|
||||||
<p>Here is how I’ve setup my MQTT payload from BirdNET-Pi Settings:</p>
|
<p>Here is how I’ve setup my MQTT payload from BirdNET-Pi Settings:</p>
|
||||||
<p><img loading="lazy" src="static/birdnet_mqtt_settings.png," alt="Notification Settings" title="MQTT Settings in BirdNET-Pi" />
|
<p><img loading="lazy" src="../posts/img/birdnet_mqtt_settings.png," alt="Notification Settings" title="MQTT Settings in BirdNET-Pi" />
|
||||||
</p>
|
</p>
|
||||||
<p>Here it is in text form:</p>
|
<p>Here it is in text form:</p>
|
||||||
<pre tabindex="0"><code class="language-none" data-lang="none">Notification Title: $comname,
|
<pre tabindex="0"><code class="language-none" data-lang="none">Notification Title: $comname,
|
||||||
@ -420,6 +420,11 @@ dashboard.</p>
|
|||||||
<li><a href="../tags/diy.html">diy</a></li>
|
<li><a href="../tags/diy.html">diy</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<nav class="paginav">
|
<nav class="paginav">
|
||||||
|
<a class="prev" href="../posts/new-favorite-website.html">
|
||||||
|
<span class="title">« Prev</span>
|
||||||
|
<br>
|
||||||
|
<span>New Favorite Website!</span>
|
||||||
|
</a>
|
||||||
<a class="next" href="../posts/multiple_git_remotes.html">
|
<a class="next" href="../posts/multiple_git_remotes.html">
|
||||||
<span class="title">Next »</span>
|
<span class="title">Next »</span>
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
BIN
public/posts/img/birdnet-homeassistant.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
public/posts/img/birdnet_mqtt_settings.png
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
public/posts/img/explain-shell-homepage.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/posts/img/explain-shell-interface.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
@ -1,171 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<title>Posts :: Rsmsn Blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
|
|
||||||
<meta name="robots" content="noodp" />
|
|
||||||
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/posts/" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://selfhosted.rsmsn.co/styles.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
<link rel="apple-touch-icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:locale" content="en" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:title" content="Posts">
|
|
||||||
<meta property="og:description" content="" />
|
|
||||||
<meta property="og:url" content="https://selfhosted.rsmsn.co/posts/" />
|
|
||||||
<meta property="og:site_name" content="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image" content="img/favicon/%!s().png">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="627">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link href="../posts/index.xml" rel="alternate" type="application/rss+xml" title="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container headings--one-size">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/">
|
|
||||||
<div class="logo">
|
|
||||||
Terminal
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="posts">
|
|
||||||
|
|
||||||
<article class="post on-list">
|
|
||||||
<h1 class="post-title">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/posts/npm_to_nginx_tutorial/">Tutorial: Move from NginxProxyManager to Nginx</a>
|
|
||||||
</h1>
|
|
||||||
<div class="post-meta"><time class="post-date">2023-08-05</time></div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags">
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/tutorial/">tutorial</a>
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/self-hosted/">self-hosted</a>
|
|
||||||
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
|
|
||||||
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.
|
|
||||||
Goal 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.
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a class="read-more button" href="../posts/npm_to_nginx_tutorial/"> →</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<span>© 2023 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
|
||||||
|
|
||||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="../bundle.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -6,14 +6,14 @@
|
|||||||
<description>Recent content in Posts on Norm-working Packets 💾</description>
|
<description>Recent content in Posts on Norm-working Packets 💾</description>
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<lastBuildDate>Mon, 25 Sep 2023 12:51:55 -0400</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
|
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
<title>New Favorite Website!</title>
|
||||||
<link>/posts/birdnet_homeassistant.html</link>
|
<link>/posts/new-favorite-website.html</link>
|
||||||
<pubDate>Mon, 25 Sep 2023 12:51:55 -0400</pubDate>
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
<guid>/posts/new-favorite-website.html</guid>
|
||||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
|
|||||||
@ -216,10 +216,10 @@ there twice, once for <code>(push)</code> and once for <code>(fetch)</code>.</p>
|
|||||||
<li><a href="../tags/commandline.html">commandline</a></li>
|
<li><a href="../tags/commandline.html">commandline</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<nav class="paginav">
|
<nav class="paginav">
|
||||||
<a class="prev" href="../posts/birdnet_homeassistant.html">
|
<a class="prev" href="../posts/new-favorite-website.html">
|
||||||
<span class="title">« Prev</span>
|
<span class="title">« Prev</span>
|
||||||
<br>
|
<br>
|
||||||
<span>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</span>
|
<span>New Favorite Website!</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="next" href="../posts/hosting_hugo_troubles.html">
|
<a class="next" href="../posts/hosting_hugo_troubles.html">
|
||||||
<span class="title">Next »</span>
|
<span class="title">Next »</span>
|
||||||
|
|||||||
387
public/posts/new-favorite-website.html
Normal file
@ -0,0 +1,387 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><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>New Favorite Website! | Norm-working Packets 💾</title>
|
||||||
|
<meta name="keywords" content="resources, shell, commandline">
|
||||||
|
<meta name="description" content="Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.">
|
||||||
|
<meta name="author" content="Me">
|
||||||
|
<link rel="canonical" href="../posts/new-favorite-website.html">
|
||||||
|
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||||
|
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||||
|
onload="hljs.initHighlightingOnLoad();"></script>
|
||||||
|
<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">
|
||||||
|
<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="New Favorite Website!" />
|
||||||
|
<meta property="og:description" content="Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!." />
|
||||||
|
<meta property="og:type" content="article" />
|
||||||
|
<meta property="og:url" content="/posts/new-favorite-website.html" />
|
||||||
|
<meta property="og:image" content="/new-website-cover.png" /><meta property="article:section" content="posts" />
|
||||||
|
<meta property="article:published_time" content="2023-09-27T10:07:01-04:00" />
|
||||||
|
<meta property="article:modified_time" content="2023-09-27T10:07:01-04:00" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
<meta name="twitter:image" content="/new-website-cover.png" />
|
||||||
|
<meta name="twitter:title" content="New Favorite Website!"/>
|
||||||
|
<meta name="twitter:description" content="Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!."/>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BreadcrumbList",
|
||||||
|
"itemListElement": [
|
||||||
|
{
|
||||||
|
"@type": "ListItem",
|
||||||
|
"position": 1 ,
|
||||||
|
"name": "New Favorite Website!",
|
||||||
|
"item": "/posts/new-favorite-website.html"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BlogPosting",
|
||||||
|
"headline": "New Favorite Website!",
|
||||||
|
"name": "New Favorite Website!",
|
||||||
|
"description": "Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.",
|
||||||
|
"keywords": [
|
||||||
|
"resources", "shell", "commandline"
|
||||||
|
],
|
||||||
|
"articleBody": "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. There are even spin-off projects to use this tool while offline.\nYou can even test it again the strings you do (or don’t!) want to verify against. This website is beyond cool.\nSo this morning, when I saw Jérémy Garniaux ask if there was an “explain shell” for Vim or Neovim, this was the Regex101 but for shell commands.\nSide Note: it took me way too long how to figure out how to embed an iframe directly into Hugo without creating a new shortcode template and other suggestions. I’ll be sure to post about that in the future.\nWhen you first load ExplainShell.com, you’re greeted with a clean, minimal interface with some explanation and a very obvious search bar.\nFor those new to the command line, it also shares some suggested queries to search with. As you read over the results, you can hover on the different elements of the command and it will highlight the explanation below. I mean, look at how clean and nice that is!\nAs many other command line users are apt to do, I use the man page all the time for commands and flags I’m unsure of, or need a refresher on. While knowing what a certain flag is and what it does for a specific command is supremely helpful, I find the man pages a tad bit overwhelming. You can always grep for what you’re looking for, but even then I’ve found times where it only pulls out half of the full description, or even just the line the definition is on.\nSo the fact that this resources can extract exactly what you need in your command from a man page without digging through every line, is extremely useful! Going back to Jérémy’s original toot and question… who is going to make this same tool for Neovim?\n",
|
||||||
|
"wordCount" : "377",
|
||||||
|
"inLanguage": "en",
|
||||||
|
"image":"/new-website-cover.png","datePublished": "2023-09-27T10:07:01-04:00",
|
||||||
|
"dateModified": "2023-09-27T10:07:01-04:00",
|
||||||
|
"author":{
|
||||||
|
"@type": "Person",
|
||||||
|
"name": "Me"
|
||||||
|
},
|
||||||
|
"mainEntityOfPage": {
|
||||||
|
"@type": "WebPage",
|
||||||
|
"@id": "/posts/new-favorite-website.html"
|
||||||
|
},
|
||||||
|
"publisher": {
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "Norm-working Packets 💾",
|
||||||
|
"logo": {
|
||||||
|
"@type": "ImageObject",
|
||||||
|
"url": "/favicon.ico"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class=" 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="post-single">
|
||||||
|
<header class="post-header">
|
||||||
|
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||||
|
<h1 class="post-title">
|
||||||
|
New Favorite Website!
|
||||||
|
</h1>
|
||||||
|
<div class="post-description">
|
||||||
|
Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.
|
||||||
|
</div>
|
||||||
|
<div class="post-meta"><span title='2023-09-27 10:07:01 -0400 EDT'>September 27, 2023</span> · 2 min · 377 words · Me
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<div class="post-content"><p>For the longest time, I had <a href="www.regex101.com">Regex101</a> 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. There are even <a href="https://github.com/nedrysoft/regex101">spin-off projects</a> to use
|
||||||
|
this tool while offline.</p>
|
||||||
|
<p>You can even test it again the strings you do (or don’t!) want to verify against. This website is beyond cool.</p>
|
||||||
|
<p>So this morning, when I saw <a href="https://mapstodon.space/@jeremy">Jérémy Garniaux</a> ask if there was an “explain shell” for Vim or
|
||||||
|
Neovim, this was the Regex101 but for shell commands.</p>
|
||||||
|
<iframe
|
||||||
|
src="https://mapstodon.space/@jeremy/111135981133166060/embed"
|
||||||
|
width="100%" height="400px" style="border:none;"></iframe>
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
.box-shortcode {
|
||||||
|
padding: 1.6em;
|
||||||
|
padding-top: 1.4em;
|
||||||
|
line-height: 1.4em;
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #444;
|
||||||
|
background: #f3ebe850;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title {
|
||||||
|
margin: -18px -18px 12px;
|
||||||
|
padding: 4px 18px;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #fff;
|
||||||
|
background: #6ab0de;
|
||||||
|
}
|
||||||
|
.box-shortcode.warning .box-title {
|
||||||
|
background: #ff6b6b;
|
||||||
|
}
|
||||||
|
.box-shortcode.warning {
|
||||||
|
background: #ff6b6b4f;
|
||||||
|
}
|
||||||
|
.box-shortcode.info .box-title {
|
||||||
|
background: #0089e488;
|
||||||
|
}
|
||||||
|
.box-shortcode.info {
|
||||||
|
background: #0089e41c;
|
||||||
|
box-shadow: 3px 3px 5px #0089e410;
|
||||||
|
}
|
||||||
|
.box-shortcode.important .box-title {
|
||||||
|
background: #f7ec2c;
|
||||||
|
}
|
||||||
|
.box-shortcode.important {
|
||||||
|
background: #f7ec2c7d;
|
||||||
|
}
|
||||||
|
.box-shortcode.tip .box-title {
|
||||||
|
background: #a3ffa34d;
|
||||||
|
}
|
||||||
|
.box-shortcode.tip {
|
||||||
|
background: #a3ffa34d;
|
||||||
|
box-shadow: 3px 3px 5px #0089e410;
|
||||||
|
}
|
||||||
|
.icon-box {
|
||||||
|
display: inline-flex;
|
||||||
|
align-self: center;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
.icon-box img,
|
||||||
|
.icon-box svg {
|
||||||
|
height: 1em;
|
||||||
|
width: 1em;
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
.icon-box img,
|
||||||
|
.icon-box.baseline svg {
|
||||||
|
top: 0.125em;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.box-shortcode p {
|
||||||
|
margin-bottom: 0.6em;
|
||||||
|
}
|
||||||
|
.box-shortcode p:first-of-type {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
.box-shortcode p:nth-of-type(2) {
|
||||||
|
margin-top: 0.6em;
|
||||||
|
}
|
||||||
|
.box-shortcode p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<svg width="0" height="0" display="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<symbol id="tip-box" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<path
|
||||||
|
d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="important-box" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<path
|
||||||
|
d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="warning-box" viewBox="0 0 576 512" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<path
|
||||||
|
d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="info-box" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<path
|
||||||
|
d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/>
|
||||||
|
</symbol>
|
||||||
|
</svg><div class="box box-shortcode info" >
|
||||||
|
<span class="icon-box baseline">
|
||||||
|
<svg><use href="#info-box"></use></svg>
|
||||||
|
</span>
|
||||||
|
<p><em>Side Note: it took me way too long how to figure out how to embed an iframe directly into Hugo without creating a new shortcode template and other suggestions. I’ll be sure to post about that in the future.</em></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>When you first load ExplainShell.com, you’re greeted with a clean, minimal interface with some explanation and a very obvious
|
||||||
|
search bar.</p>
|
||||||
|
<p><img loading="lazy" src="../posts/img/explain-shell-homepage.png" alt="ExplainShell Homepage" />
|
||||||
|
</p>
|
||||||
|
<p>For those new to the command line, it also shares some suggested queries to search with. As you read over the results, you
|
||||||
|
can hover on the different elements of the command and it will highlight the explanation below. I mean, look at how clean and
|
||||||
|
nice that is!</p>
|
||||||
|
<p><img loading="lazy" src="../posts/img/explain-shell-interface.png" alt="ExplainShell Results" />
|
||||||
|
</p>
|
||||||
|
<p>As many other command line users are apt to do, I use the man page all the time for commands and flags I’m unsure of, or need
|
||||||
|
a refresher on. While knowing what a certain flag is and what it does for a specific command is supremely helpful, I find the
|
||||||
|
man pages a tad bit overwhelming. You can always <code>grep</code> for what you’re looking for, but even then I’ve found times where it
|
||||||
|
only pulls out half of the full description, or even just the line the definition is on.</p>
|
||||||
|
<p>So the fact that this resources can extract exactly what you need in your command from a man page without digging through
|
||||||
|
every line, is extremely useful! Going back to Jérémy’s original toot and question… who is going to make this same tool for
|
||||||
|
Neovim?</p>
|
||||||
|
<style>
|
||||||
|
.box-shortcode {
|
||||||
|
color: #e8e8e8;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="post-footer">
|
||||||
|
<ul class="post-tags">
|
||||||
|
<li><a href="../tags/resources.html">resources</a></li>
|
||||||
|
<li><a href="../tags/shell.html">shell</a></li>
|
||||||
|
<li><a href="../tags/commandline.html">commandline</a></li>
|
||||||
|
</ul>
|
||||||
|
<nav class="paginav">
|
||||||
|
<a class="next" href="../posts/multiple_git_remotes.html">
|
||||||
|
<span class="title">Next »</span>
|
||||||
|
<br>
|
||||||
|
<span>Pushing a Single Local Git Repo to Multiple Remote Repos</span>
|
||||||
|
</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</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>
|
||||||
@ -1,418 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<title>Tutorial: Move from NginxProxyManager to Nginx :: Rsmsn Blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="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.
|
|
||||||
Goal 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." />
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
|
|
||||||
<meta name="robots" content="noodp" />
|
|
||||||
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/posts/npm_to_nginx_tutorial/" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://selfhosted.rsmsn.co/styles.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
<link rel="apple-touch-icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:locale" content="en" />
|
|
||||||
<meta property="og:type" content="article" />
|
|
||||||
<meta property="og:title" content="Tutorial: Move from NginxProxyManager to Nginx">
|
|
||||||
<meta property="og:description" content="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.
|
|
||||||
Goal 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." />
|
|
||||||
<meta property="og:url" content="https://selfhosted.rsmsn.co/posts/npm_to_nginx_tutorial/" />
|
|
||||||
<meta property="og:site_name" content="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image" content="img/favicon/%!s().png">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="627">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="article:published_time" content="2023-08-05 15:23:51 -0500 -0500" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container headings--one-size">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/">
|
|
||||||
<div class="logo">
|
|
||||||
Terminal
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<article class="post">
|
|
||||||
<h1 class="post-title">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/posts/npm_to_nginx_tutorial/">Tutorial: Move from NginxProxyManager to Nginx</a>
|
|
||||||
</h1>
|
|
||||||
<div class="post-meta"><time class="post-date">2023-08-05</time></div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags">
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/tutorial/">tutorial</a>
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/self-hosted/">self-hosted</a>
|
|
||||||
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content"><div>
|
|
||||||
<p>A Tutorial Repo for migrating your Nginx Proxy Manager proxy setup to Nginx. I wrote this originally for <a href="https://www.reddit.com/r/selfhosted/comments/15j4v80/minitutorial_migrating_from_nginx_proxy_manager/">this reddit
|
|
||||||
post</a> and to post this <a href="https://github.com/Normanras/Npm_to_Nginx">my Github profile</a>. Thought my website would also be a good place to share it for any passers-by.</p>
|
|
||||||
<h2 id="goal">Goal<a href="#goal" class="hanchor" ariaLabel="Anchor">⌗</a> </h2>
|
|
||||||
<p>To give clear instructions to help users migrate from using <a href="https://nginxproxymanager.com/">Nginx Proxy Manager</a> (NPM) to standard <a href="https://docs.nginx.com/">Nginx</a>. This tutorial is not exhaustive and there are many other implementations of this transition. I would recommend checking out the many Nginx <a href="http://nginx.org/en/docs/">Documentation Sites</a> and tutorials to learn more.</p>
|
|
||||||
<h3 id="introduction">Introduction<a href="#introduction" class="hanchor" ariaLabel="Anchor">⌗</a> </h3>
|
|
||||||
<p>If you’re anything like me and you got into the self-hosted/homelab/diy game sometime within the last 5 years, you’ve likely been recommended to use Nginx Proxy Manager as one of the choice Reverse Proxy services. If you’ve also been paying attention to various self-hosted communities, you may have also come across Christian Lempa’s Video on <a href="https://youtu.be/uaixCKTaqY0">trusting smaller self hosted projects and tools</a>.</p>
|
|
||||||
<p><em>Spoilers:</em> He roasts NPM in his video and towards the end says he won’t be using NPM anymore. He also, perhaps purposely, doesn’t share which tool he will be migrating to.</p>
|
|
||||||
<p>Whether you follow Christian away from NPM or not, it dawned on me that while NPM is using a very trusted web server and reverse proxy under the hood, I hadn’t taken the time to understand how an Nginx Config actually worked. Since NPM was already creating most of the files for Nginx, I got to reading through all the files and reworking them so that I could begin using Nginx without the NPM gui.</p>
|
|
||||||
<p><em>Contributing: This is not all encompassing of Nginx possibilities. Including instructions for various installation methods, using OpenResty, and any other migrations or use cases would help the community. If you’d like to add in additional information on how to migrate from NPM to Nginx, that is welcome. Simply submit a PR with your steps.</em></p>
|
|
||||||
<h3 id="tldr---quick-steps">TL;DR - Quick Steps<a href="#tldr---quick-steps" class="hanchor" ariaLabel="Anchor">⌗</a> </h3>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>Copy the following contents (including sub-directories) from the NPM <code>/data/nginx</code> directory to the Nginx <code>/etc/nginx</code> folder:</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>proxy_hosts</code> > <code>sites-available</code></li>
|
|
||||||
<li><code>conf.d</code> > <code>conf.d</code></li>
|
|
||||||
<li><code>snippets</code> > <code>snippets</code></li>
|
|
||||||
<li><code>custom_ssl</code> > <code>custom_ssl</code> (if applicable)</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Edit each file in your <code>sites-available</code> directory and update the paths. Most will change from <code>/data/nginx/</code> to <code>/etc/nginx</code>.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Edit your <code>nginx.conf</code> file and ensure the following two paths are there:</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>include /etc/nginx/conf.d/*.conf;</code> and <code>include /etc/nginx/sites-enabled/*;</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Symlink the proxy host files in <code>sites-available</code> to <code>sites-enabled</code></p>
|
|
||||||
<ul>
|
|
||||||
<li><code>ln -s * ./sites-enabled</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Test your changes with <code>nginx -t</code>. Make appropriate changes if there are error messages.</p>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<h3 id="pre-requisites--assumptions">Pre-requisites & Assumptions<a href="#pre-requisites--assumptions" class="hanchor" ariaLabel="Anchor">⌗</a> </h3>
|
|
||||||
<p>I am using an Ubuntu VM with NPM and it’s db as a Docker Container while Nginx is installed natively on the machine. You don’t have to use this setup exactly, but I am making a few assumptions as to what you should have access to before you begin. I am also using custom SSL certs, but theoretically, the transition should be the same when using Lets Encrypt.</p>
|
|
||||||
<p>I’ve added some example files to show before and after changes to this repo and outlined file trees below.</p>
|
|
||||||
<ul>
|
|
||||||
<li>You understand the basics of what a Reverse Proxy is doing and are sticking with some stock settings (like exposing port 80 an 443).</li>
|
|
||||||
<li>You’ve installed <a href="https://nginxproxymanager.com/setup/">NPM</a> and <a href="https://www.nginx.com/resources/wiki/start/topics/tutorials/install/">Nginx</a> using your preferred method.</li>
|
|
||||||
<li>You have access to both NPMs file tree and Nginx’s.</li>
|
|
||||||
<li>If using NPM in docker, make sure you’ve mapped a local volume on the host to the container.</li>
|
|
||||||
<li>My setup using docker-compose is the following: <code>/user/nginx/data:/data</code>.</li>
|
|
||||||
<li>Know where your Nginx files are. If using docker, same as above, make sure your container directories are mapped to the host.</li>
|
|
||||||
<li>For a linux install, they should be accessible at <code>/etc/nginx</code>.</li>
|
|
||||||
<li>You know how to edit files at the command line using <code>nano</code>, <code>vi</code>, <code>vim</code>, <code>neovim</code>, <code>emacs</code>, or something else.</li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="nginx-files">Nginx Files<a href="#nginx-files" class="hanchor" ariaLabel="Anchor">⌗</a> </h3>
|
|
||||||
<p>Nginx uses the <code>nginx.conf</code> file and within that file, it will include your proxy files. These exist under <code>./nginx/sites-enabled/</code>. In the main <code>nginx.conf</code> file, the line <code>include /etc/nginx/sites-enabled/*;</code> will bring in those files to the config file, making the proxies accessible.</p>
|
|
||||||
<h3 id="how-to-transition---detailed-version">How to Transition - Detailed Version<a href="#how-to-transition---detailed-version" class="hanchor" ariaLabel="Anchor">⌗</a> </h3>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>Since NPM uses Nginx under the hood, they are both, by default, going to try and use ports 80 and 443 to serve up your apps and content. Turn off both systems.</p>
|
|
||||||
<ul>
|
|
||||||
<li>Docker: <code>docker stop [app_container, db_container]</code></li>
|
|
||||||
<li>Systemd: <code>systemctl stop nginx</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Copy your <code>proxy_host</code> (NPM) files to the <code>sites-available</code> (Nginx) folder.
|
|
||||||
<code>cp -r /user/nginx/data/nginx/proxy_hosts/* /etc/nginx/sites-available/</code></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Nginx doesn’t really care what the files are called, but NPM numbers them based on the order in which you added them in the GUI. I find it better to rename them to what service they actually serve up for easier identification later.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Copy your <code>custom_ssl</code> folder from NPM to the <code>custom_ssl</code> folder in Nginx. See the following step for the various default paths in both systems.</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>cp -r /user/nginx/data/custom_ssl/* /etc/nginx/custom_ssl/</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Copy the <code>conf.d</code> folder from NPM to the <code>conf.d</code> folder in Nginx. <em>Note: For some reason, not all of the files in
|
|
||||||
the proxy files were actually in my <code>conf.d</code> directory. If you’re missing any files, please download and/or copy and
|
|
||||||
paste them from the <a href="https://github.com/NginxProxyManager/nginx-proxy-manager/tree/fa851b61da3fe3726d1a04c25e69d36e79edea2d/docker/rootfs/etc/nginx/conf.d/include">NPM Repo</a></em></p>
|
|
||||||
<ul>
|
|
||||||
<li><code>cp -r /user/nginx/data/nginx/conf.d /etc/nginx/</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>If you had any additional files included in the Advanced section of an NPM Proxy Host, make sure you copy them over. For my setup and this tutorial, they were all located in the <code>snippets</code> directory.</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>cp -r /user/nginx/data/nginx/snippets/* /etc/nginx/snippets/</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>There are a number of lines that need to be updated in each proxy configuration file to make them work with Nginx. I’ve placed additional comments in <a href="./proxy_host/npm_proxy.conf"><code>./proxy_host/npm_proxy.conf</code></a> file. The line changes are the following:</p>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>Custom SSL path:</p>
|
|
||||||
<ul>
|
|
||||||
<li>NPM path: <code>/data/custom_ssl...</code></li>
|
|
||||||
<li>Nginx path: <code>/etc/nginx/custom_ssl...</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>conf.d:</p>
|
|
||||||
<ul>
|
|
||||||
<li>The paths should remain the same. However, if you changed the path for <code>conf.d</code> in Nginx and differed in step 5, above, make sure you use the correct path.</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Access & Error Logs</p>
|
|
||||||
<ul>
|
|
||||||
<li>NPM path: <code>/data/logs/...</code></li>
|
|
||||||
<li>Nginx path: <code>/var/log/nginx/...</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Double Check all your paths! If this is your first time using Nginx, make sure every directory is correct! Save your work.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Navigate to the <code>nginx.conf</code> file which is located at <code>/etc/nginx/</code>. You can see the one I am using in this repo.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Make sure that you have the following two lines in the main conf file and that they are pointing to the appropriate directories in the nginx directory path.</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>include /etc/nginx/conf.d/*.conf;</code> and <code>include /etc/nginx/sites-enabled/*;</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>You’ll notice that you ensured there was a <code>sites-enabled</code> directory in the configuration file, but you changed all your proxy host config files in <code>sites-available</code>! Good eye, all that’s left is to symlink the files to <code>sites-enabled</code> so that nginx can start using them.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>To symlink the available proxy files run the following command within the <code>sites-available</code> directory:</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>ln -s * ./sites-enabled</code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Once you’re confident that you’ve done all the above correctly, you can test your setup using nginx command and flags. While in the directory with your <code>nginx.conf</code> file - usually <code>/etc/nginx</code> - run the following command: <code>nginx -t</code>.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>If all is working as expected you should see the below output. If it returns any errors, fix them appropriately. It will usually tell you what line is throwing the error. In this case, there’s a high likelihood that it will be path error.</p>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
|
|
||||||
</span></span><span style="display:flex;"><span>nginx: configuration file /etc/nginx/nginx.conf test is successful
|
|
||||||
</span></span></code></pre></div><p>And that’s it! You can now restart your nginx service on the host and access all your sites just as if you were using Nginx Proxy Manager! Make sure you take a look at your logs and system’s status should nginx fail to start.</p>
|
|
||||||
<h3 id="additional-informationappendix">Additional Information/Appendix<a href="#additional-informationappendix" class="hanchor" ariaLabel="Anchor">⌗</a> </h3>
|
|
||||||
<h4 id="file-trees-for-npm-in-container-and-nginx-on-host">File Trees for NPM (in container) and Nginx (on host)<a href="#file-trees-for-npm-in-container-and-nginx-on-host" class="hanchor" ariaLabel="Anchor">⌗</a> </h4>
|
|
||||||
<p><em>I did not expand every directory in these trees. Only the ones that are pertinent for reference in this tutorial.</em></p>
|
|
||||||
<h4 id="nginx">NGINX<a href="#nginx" class="hanchor" ariaLabel="Anchor">⌗</a> </h4>
|
|
||||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>├── conf.d
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── include
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── assets.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── block-exploits.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── force-ssl.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── ip_ranges.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── proxy.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── resolvers.conf
|
|
||||||
</span></span><span style="display:flex;"><span>├── custom_ssl
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── npm-1
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── fullchain.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ └── privkey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── npm-2
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── fullchain.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ └── privkey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── npm-3
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── fullchain.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── privkey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>├── fastcgi.conf
|
|
||||||
</span></span><span style="display:flex;"><span>├── fastcgi_params
|
|
||||||
</span></span><span style="display:flex;"><span>├── koi-utf
|
|
||||||
</span></span><span style="display:flex;"><span>├── koi-win
|
|
||||||
</span></span><span style="display:flex;"><span>├── mime.types
|
|
||||||
</span></span><span style="display:flex;"><span>├── modules-available
|
|
||||||
</span></span><span style="display:flex;"><span>├── modules-enabled
|
|
||||||
</span></span><span style="display:flex;"><span>├── nginx.conf
|
|
||||||
</span></span><span style="display:flex;"><span>├── proxy_params
|
|
||||||
</span></span><span style="display:flex;"><span>├── scgi_params
|
|
||||||
</span></span><span style="display:flex;"><span>├── sites-available
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── auth.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── bitwarden.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── codehub.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── default.backup
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── files.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── notes.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── photos.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── rsmsn-root.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── wordle.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── wordle-it.conf
|
|
||||||
</span></span><span style="display:flex;"><span>├── sites-enabled
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── auth.conf -> /etc/nginx/sites-available/auth.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── bitwarden.conf -> /etc/nginx/sites-available/bitwarden.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── codehub.conf -> /etc/nginx/sites-available/codehub.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── files.conf -> /etc/nginx/sites-available/files.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── notes.conf -> /etc/nginx/sites-available/notes.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── photos.conf -> /etc/nginx/sites-available/photos.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── wordle.conf -> /etc/nginx/sites-available/wordle.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── wordle-it.conf -> /etc/nginx/sites-available/wordle-it.conf
|
|
||||||
</span></span><span style="display:flex;"><span>├── snippets
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── authelia-authrequest-basic.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── authelia-authrequest.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── authelia-authrequest-detect.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── authelia-location-basic.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── authelia-location.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── authelia-location-detect.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── fastcgi-php.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── proxy.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── snakeoil.conf
|
|
||||||
</span></span><span style="display:flex;"><span>├── uwsgi_params
|
|
||||||
</span></span><span style="display:flex;"><span>└── win-utf
|
|
||||||
</span></span></code></pre></div><h4 id="npm">NPM<a href="#npm" class="hanchor" ariaLabel="Anchor">⌗</a> </h4>
|
|
||||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>├── data
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── access
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── custom_ssl
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── npm-1
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ │ ├── fullchain.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ │ └── privkey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── npm-2
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ │ ├── fullchain.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ │ └── privkey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ └── npm-3
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── fullchain.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ └── privkey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── keys.json
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── letsencrypt-acme-challenge
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── logs
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── mysql
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── nginx
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── custom
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── dead_host
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── default_host
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── default_www
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── dummycert.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── dummykey.pem
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── proxy_host
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 10.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 11.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 12.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 13.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 15.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 1.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 2.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 4.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── 5.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ └── 6.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── redirection_host
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── snippets
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── authelia-authrequest-basic.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── authelia-authrequest.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── authelia-authrequest-detect.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── authelia-location-basic.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── authelia-location.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ ├── authelia-location-detect.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ │ └── proxy.conf
|
|
||||||
</span></span><span style="display:flex;"><span>│ ├── stream
|
|
||||||
</span></span><span style="display:flex;"><span>│ └── temp
|
|
||||||
</span></span><span style="display:flex;"><span>├── docker-compose.yml
|
|
||||||
</span></span><span style="display:flex;"><span>└── letsencrypt
|
|
||||||
</span></span><span style="display:flex;"><span>└── renewal-hooks
|
|
||||||
</span></span></code></pre></div>
|
|
||||||
</div></div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<span>© 2023 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
|
||||||
|
|
||||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="../../bundle.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>https://selfhosted.rsmsn.co/posts/</title>
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/posts/">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://selfhosted.rsmsn.co/posts/">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -2,32 +2,29 @@
|
|||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
<url>
|
<url>
|
||||||
<loc>/posts/birdnet_homeassistant.html</loc>
|
<loc>/tags/commandline.html</loc>
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/tags/diy.html</loc>
|
<loc>/posts/new-favorite-website.html</loc>
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
</url><url>
|
|
||||||
<loc>/tags/homeassistant.html</loc>
|
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/</loc>
|
<loc>/</loc>
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/posts.html</loc>
|
<loc>/posts.html</loc>
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/tags/python.html</loc>
|
<loc>/tags/resources.html</loc>
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>/tags/shell.html</loc>
|
||||||
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/tags.html</loc>
|
<loc>/tags.html</loc>
|
||||||
<lastmod>2023-09-25T12:51:55-04:00</lastmod>
|
<lastmod>2023-09-27T10:07:01-04:00</lastmod>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/tags/backups.html</loc>
|
<loc>/tags/backups.html</loc>
|
||||||
<lastmod>2023-09-22T15:07:10-04:00</lastmod>
|
<lastmod>2023-09-22T15:07:10-04:00</lastmod>
|
||||||
</url><url>
|
|
||||||
<loc>/tags/commandline.html</loc>
|
|
||||||
<lastmod>2023-09-22T15:07:10-04:00</lastmod>
|
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>/tags/git.html</loc>
|
<loc>/tags/git.html</loc>
|
||||||
<lastmod>2023-09-22T15:07:10-04:00</lastmod>
|
<lastmod>2023-09-22T15:07:10-04:00</lastmod>
|
||||||
|
|||||||
@ -98,19 +98,16 @@ if (!doNotTrack) {
|
|||||||
<a href="./tags/backups.html">backups <sup><strong><sup>3</sup></strong></sup> </a>
|
<a href="./tags/backups.html">backups <sup><strong><sup>3</sup></strong></sup> </a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="./tags/commandline.html">commandline <sup><strong><sup>3</sup></strong></sup> </a>
|
<a href="./tags/commandline.html">commandline <sup><strong><sup>4</sup></strong></sup> </a>
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="./tags/diy.html">diy <sup><strong><sup>1</sup></strong></sup> </a>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="./tags/git.html">git <sup><strong><sup>3</sup></strong></sup> </a>
|
<a href="./tags/git.html">git <sup><strong><sup>3</sup></strong></sup> </a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="./tags/homeassistant.html">homeassistant <sup><strong><sup>1</sup></strong></sup> </a>
|
<a href="./tags/resources.html">resources <sup><strong><sup>1</sup></strong></sup> </a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="./tags/python.html">python <sup><strong><sup>1</sup></strong></sup> </a>
|
<a href="./tags/shell.html">shell <sup><strong><sup>1</sup></strong></sup> </a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@ -95,6 +95,20 @@ if (!doNotTrack) {
|
|||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
<article class="post-entry tag-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 tag-entry">
|
<article class="post-entry tag-entry">
|
||||||
<figure class="entry-cover"><img loading="lazy" src="../multiple-git-cover-img.png" alt="git commands">
|
<figure class="entry-cover"><img loading="lazy" src="../multiple-git-cover-img.png" alt="git commands">
|
||||||
</figure>
|
</figure>
|
||||||
|
|||||||
@ -6,7 +6,16 @@
|
|||||||
<description>Recent content in commandline on Norm-working Packets 💾</description>
|
<description>Recent content in commandline on Norm-working Packets 💾</description>
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate><atom:link href="/tags/commandline/index.xml" rel="self" type="application/rss+xml" />
|
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/tags/commandline/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>New Favorite Website!</title>
|
||||||
|
<link>/posts/new-favorite-website.html</link>
|
||||||
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
|
<guid>/posts/new-favorite-website.html</guid>
|
||||||
|
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||||
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
||||||
<link>/posts/multiple_git_remotes.html</link>
|
<link>/posts/multiple_git_remotes.html</link>
|
||||||
|
|||||||
@ -1,150 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<title>Tags :: Rsmsn Blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
|
|
||||||
<meta name="robots" content="noodp" />
|
|
||||||
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/tags/" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://selfhosted.rsmsn.co/styles.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
<link rel="apple-touch-icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:locale" content="en" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:title" content="Tags">
|
|
||||||
<meta property="og:description" content="" />
|
|
||||||
<meta property="og:url" content="https://selfhosted.rsmsn.co/tags/" />
|
|
||||||
<meta property="og:site_name" content="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image" content="img/favicon/%!s().png">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="627">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link href="../tags/index.xml" rel="alternate" type="application/rss+xml" title="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container headings--one-size">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/">
|
|
||||||
<div class="logo">
|
|
||||||
Terminal
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="terms">
|
|
||||||
<h1>Tags</h1>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="terms-title" href="https://selfhosted.rsmsn.co/tags/self-hosted/">self-hosted [1]</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="terms-title" href="https://selfhosted.rsmsn.co/tags/tutorial/">tutorial [1]</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<span>© 2023 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
|
||||||
|
|
||||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="../bundle.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -6,31 +6,31 @@
|
|||||||
<description>Recent content in Tags on Norm-working Packets 💾</description>
|
<description>Recent content in Tags on Norm-working Packets 💾</description>
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<lastBuildDate>Mon, 25 Sep 2023 12:51:55 -0400</lastBuildDate><atom:link href="/tags/index.xml" rel="self" type="application/rss+xml" />
|
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||||
<item>
|
<item>
|
||||||
<title>diy</title>
|
<title>commandline</title>
|
||||||
<link>/tags/diy.html</link>
|
<link>/tags/commandline.html</link>
|
||||||
<pubDate>Mon, 25 Sep 2023 12:51:55 -0400</pubDate>
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
<guid>/tags/diy.html</guid>
|
<guid>/tags/commandline.html</guid>
|
||||||
<description></description>
|
<description></description>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<title>homeassistant</title>
|
<title>resources</title>
|
||||||
<link>/tags/homeassistant.html</link>
|
<link>/tags/resources.html</link>
|
||||||
<pubDate>Mon, 25 Sep 2023 12:51:55 -0400</pubDate>
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
<guid>/tags/homeassistant.html</guid>
|
<guid>/tags/resources.html</guid>
|
||||||
<description></description>
|
<description></description>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<title>python</title>
|
<title>shell</title>
|
||||||
<link>/tags/python.html</link>
|
<link>/tags/shell.html</link>
|
||||||
<pubDate>Mon, 25 Sep 2023 12:51:55 -0400</pubDate>
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
<guid>/tags/python.html</guid>
|
<guid>/tags/shell.html</guid>
|
||||||
<description></description>
|
<description></description>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
@ -43,15 +43,6 @@
|
|||||||
<description></description>
|
<description></description>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>commandline</title>
|
|
||||||
<link>/tags/commandline.html</link>
|
|
||||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
|
||||||
|
|
||||||
<guid>/tags/commandline.html</guid>
|
|
||||||
<description></description>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<title>git</title>
|
<title>git</title>
|
||||||
<link>/tags/git.html</link>
|
<link>/tags/git.html</link>
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
<title>troubleshooting | Rsmsn Blog</title>
|
<title>resources | Norm-working Packets 💾</title>
|
||||||
<meta name="keywords" content="">
|
<meta name="keywords" content="">
|
||||||
<meta name="description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks.">
|
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||||
<meta name="author" content="Norm Rasmussen">
|
<meta name="author" content="Norm Rasmussen">
|
||||||
<link rel="canonical" href="../tags/troubleshooting.html">
|
<link rel="canonical" href="../tags/resources.html">
|
||||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
<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" href="../favicon.ico">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
@ -18,7 +18,7 @@
|
|||||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||||
<meta name="theme-color" content="#2e2e33">
|
<meta name="theme-color" content="#2e2e33">
|
||||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||||
<link rel="alternate" type="application/rss+xml" href="../tags/troubleshooting/index.xml">
|
<link rel="alternate" type="application/rss+xml" href="../tags/resources/index.xml">
|
||||||
<noscript>
|
<noscript>
|
||||||
<style>
|
<style>
|
||||||
#theme-toggle,
|
#theme-toggle,
|
||||||
@ -27,14 +27,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</noscript><meta property="og:title" content="troubleshooting" />
|
</noscript>
|
||||||
<meta property="og:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks." />
|
<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="resources" />
|
||||||
|
<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:type" content="website" />
|
||||||
<meta property="og:url" content="/tags/troubleshooting.html" /><meta property="og:site_name" content="RsmsnBlog" />
|
<meta property="og:url" content="/tags/resources.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary"/>
|
<meta name="twitter:card" content="summary"/>
|
||||||
<meta name="twitter:title" content="troubleshooting"/>
|
<meta name="twitter:title" content="resources"/>
|
||||||
<meta name="twitter:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks."/>
|
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -49,7 +60,7 @@
|
|||||||
<header class="header">
|
<header class="header">
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<a href="../" accesskey="h" title="Rsmsn Blog (Alt + H)">Rsmsn Blog</a>
|
<a href="../" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||||
<div class="logo-switches">
|
<div class="logo-switches">
|
||||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
<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"
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||||
@ -80,25 +91,27 @@
|
|||||||
<main class="main">
|
<main class="main">
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
<h1>
|
<h1>
|
||||||
troubleshooting
|
resources
|
||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<article class="post-entry tag-entry">
|
<article class="post-entry tag-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">
|
<header class="entry-header">
|
||||||
<h2>Trouble Hosting Hugo with Nginx
|
<h2>New Favorite Website!
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<div class="entry-content">
|
||||||
<p>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>
|
<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>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2023-09-20 11:33:22 -0400 EDT'>September 20, 2023</span> · Norm Rasmussen</footer>
|
<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 Trouble Hosting Hugo with Nginx" href="../posts/hosting_hugo_troubles.html"></a>
|
<a class="entry-link" aria-label="post link to New Favorite Website!" href="../posts/new-favorite-website.html"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<span>© 2023 <a href="../">Rsmsn Blog</a></span>
|
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||||
<span>
|
<span>
|
||||||
Powered by
|
Powered by
|
||||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
20
public/tags/resources/index.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>resources on Norm-working Packets 💾</title>
|
||||||
|
<link>/tags/resources.html</link>
|
||||||
|
<description>Recent content in resources on Norm-working Packets 💾</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/tags/resources/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>New Favorite Website!</title>
|
||||||
|
<link>/posts/new-favorite-website.html</link>
|
||||||
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
|
<guid>/posts/new-favorite-website.html</guid>
|
||||||
|
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
10
public/tags/resources/page/1.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-us">
|
||||||
|
<head>
|
||||||
|
<title>/tags/resources.html</title>
|
||||||
|
<link rel="canonical" href="../../../tags/resources.html">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="refresh" content="0; url=../../../tags/resources.html">
|
||||||
|
</head>
|
||||||
|
</html>
|
||||||
@ -1,183 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" dir="auto">
|
|
||||||
|
|
||||||
<head><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>self-hosted | Rsmsn Blog</title>
|
|
||||||
<meta name="keywords" content="">
|
|
||||||
<meta name="description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks.">
|
|
||||||
<meta name="author" content="Norm Rasmussen">
|
|
||||||
<link rel="canonical" href="../tags/self-hosted.html">
|
|
||||||
<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="../tags/self-hosted/index.xml">
|
|
||||||
<noscript>
|
|
||||||
<style>
|
|
||||||
#theme-toggle,
|
|
||||||
.top-link {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</noscript><meta property="og:title" content="self-hosted" />
|
|
||||||
<meta property="og:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks." />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="/tags/self-hosted.html" /><meta property="og:site_name" content="RsmsnBlog" />
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary"/>
|
|
||||||
<meta name="twitter:title" content="self-hosted"/>
|
|
||||||
<meta name="twitter:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks."/>
|
|
||||||
|
|
||||||
</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="Rsmsn Blog (Alt + H)">Rsmsn Blog</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">
|
|
||||||
<header class="page-header">
|
|
||||||
<h1>
|
|
||||||
self-hosted
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<article class="post-entry tag-entry">
|
|
||||||
<header class="entry-header">
|
|
||||||
<h2>Trouble Hosting Hugo with Nginx
|
|
||||||
</h2>
|
|
||||||
</header>
|
|
||||||
<div class="entry-content">
|
|
||||||
<p>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> · Norm Rasmussen</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 tag-entry">
|
|
||||||
<header class="entry-header">
|
|
||||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
|
||||||
</h2>
|
|
||||||
</header>
|
|
||||||
<div class="entry-content">
|
|
||||||
<p>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.
|
|
||||||
Goal 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> · Norm Rasmussen</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="../">Rsmsn Blog</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>
|
|
||||||
@ -1,172 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<title>self-hosted :: Rsmsn Blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
|
|
||||||
<meta name="robots" content="noodp" />
|
|
||||||
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/tags/self-hosted/" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://selfhosted.rsmsn.co/styles.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
<link rel="apple-touch-icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:locale" content="en" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:title" content="self-hosted">
|
|
||||||
<meta property="og:description" content="" />
|
|
||||||
<meta property="og:url" content="https://selfhosted.rsmsn.co/tags/self-hosted/" />
|
|
||||||
<meta property="og:site_name" content="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image" content="img/favicon/%!s().png">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="627">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link href="../../tags/self-hosted/index.xml" rel="alternate" type="application/rss+xml" title="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container headings--one-size">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/">
|
|
||||||
<div class="logo">
|
|
||||||
Terminal
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Posts for: #self-hosted</h1>
|
|
||||||
|
|
||||||
<div class="posts">
|
|
||||||
|
|
||||||
<article class="post on-list">
|
|
||||||
<h1 class="post-title">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/posts/npm_to_nginx_tutorial/">Tutorial: Move from NginxProxyManager to Nginx</a>
|
|
||||||
</h1>
|
|
||||||
<div class="post-meta"><time class="post-date">2023-08-05</time></div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags">
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/tutorial/">tutorial</a>
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/self-hosted/">self-hosted</a>
|
|
||||||
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
|
|
||||||
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.
|
|
||||||
Goal 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.
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a class="read-more button" href="../../posts/npm_to_nginx_tutorial/"> →</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<span>© 2023 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
|
||||||
|
|
||||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="../../bundle.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
|
||||||
<channel>
|
|
||||||
<title>self-hosted on Rsmsn Blog</title>
|
|
||||||
<link>/tags/self-hosted.html</link>
|
|
||||||
<description>Recent content in self-hosted on Rsmsn Blog</description>
|
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
|
||||||
<language>en-us</language>
|
|
||||||
<lastBuildDate>Wed, 20 Sep 2023 11:33:22 -0400</lastBuildDate><atom:link href="/tags/self-hosted/index.xml" rel="self" type="application/rss+xml" />
|
|
||||||
<item>
|
|
||||||
<title>Trouble Hosting Hugo with Nginx</title>
|
|
||||||
<link>/posts/hosting_hugo_troubles.html</link>
|
|
||||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
|
||||||
|
|
||||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
|
||||||
<description>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&rsquo;m happy to share some reverse proxy nginx config files.</description>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
|
||||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
|
||||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
|
||||||
|
|
||||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
|
||||||
<description>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.
|
|
||||||
Goal 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.</description>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>/tags/self-hosted.html</title>
|
|
||||||
<link rel="canonical" href="../../../tags/self-hosted.html">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=../../../tags/self-hosted.html">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>https://selfhosted.rsmsn.co/tags/self-hosted/</title>
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/tags/self-hosted/">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://selfhosted.rsmsn.co/tags/self-hosted/">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -5,11 +5,11 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
<title>tips & tricks | Rsmsn Blog</title>
|
<title>shell | Norm-working Packets 💾</title>
|
||||||
<meta name="keywords" content="">
|
<meta name="keywords" content="">
|
||||||
<meta name="description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks.">
|
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||||
<meta name="author" content="Norm Rasmussen">
|
<meta name="author" content="Norm Rasmussen">
|
||||||
<link rel="canonical" href="../tags/tips-tricks.html">
|
<link rel="canonical" href="../tags/shell.html">
|
||||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
<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" href="../favicon.ico">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
@ -18,7 +18,7 @@
|
|||||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||||
<meta name="theme-color" content="#2e2e33">
|
<meta name="theme-color" content="#2e2e33">
|
||||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||||
<link rel="alternate" type="application/rss+xml" href="../tags/tips-tricks/index.xml">
|
<link rel="alternate" type="application/rss+xml" href="../tags/shell/index.xml">
|
||||||
<noscript>
|
<noscript>
|
||||||
<style>
|
<style>
|
||||||
#theme-toggle,
|
#theme-toggle,
|
||||||
@ -27,14 +27,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</noscript><meta property="og:title" content="tips & tricks" />
|
</noscript>
|
||||||
<meta property="og:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks." />
|
<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="shell" />
|
||||||
|
<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:type" content="website" />
|
||||||
<meta property="og:url" content="/tags/tips-tricks.html" /><meta property="og:site_name" content="RsmsnBlog" />
|
<meta property="og:url" content="/tags/shell.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary"/>
|
<meta name="twitter:card" content="summary"/>
|
||||||
<meta name="twitter:title" content="tips & tricks"/>
|
<meta name="twitter:title" content="shell"/>
|
||||||
<meta name="twitter:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks."/>
|
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -49,7 +60,7 @@
|
|||||||
<header class="header">
|
<header class="header">
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<a href="../" accesskey="h" title="Rsmsn Blog (Alt + H)">Rsmsn Blog</a>
|
<a href="../" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||||
<div class="logo-switches">
|
<div class="logo-switches">
|
||||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
<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"
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||||
@ -80,25 +91,27 @@
|
|||||||
<main class="main">
|
<main class="main">
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
<h1>
|
<h1>
|
||||||
tips & tricks
|
shell
|
||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<article class="post-entry tag-entry">
|
<article class="post-entry tag-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">
|
<header class="entry-header">
|
||||||
<h2>Trouble Hosting Hugo with Nginx
|
<h2>New Favorite Website!
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="entry-content">
|
<div class="entry-content">
|
||||||
<p>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>
|
<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>
|
</div>
|
||||||
<footer class="entry-footer"><span title='2023-09-20 11:33:22 -0400 EDT'>September 20, 2023</span> · Norm Rasmussen</footer>
|
<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 Trouble Hosting Hugo with Nginx" href="../posts/hosting_hugo_troubles.html"></a>
|
<a class="entry-link" aria-label="post link to New Favorite Website!" href="../posts/new-favorite-website.html"></a>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<span>© 2023 <a href="../">Rsmsn Blog</a></span>
|
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||||
<span>
|
<span>
|
||||||
Powered by
|
Powered by
|
||||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
20
public/tags/shell/index.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>shell on Norm-working Packets 💾</title>
|
||||||
|
<link>/tags/shell.html</link>
|
||||||
|
<description>Recent content in shell on Norm-working Packets 💾</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/tags/shell/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>New Favorite Website!</title>
|
||||||
|
<link>/posts/new-favorite-website.html</link>
|
||||||
|
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||||
|
|
||||||
|
<guid>/posts/new-favorite-website.html</guid>
|
||||||
|
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
10
public/tags/shell/page/1.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-us">
|
||||||
|
<head>
|
||||||
|
<title>/tags/shell.html</title>
|
||||||
|
<link rel="canonical" href="../../../tags/shell.html">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="refresh" content="0; url=../../../tags/shell.html">
|
||||||
|
</head>
|
||||||
|
</html>
|
||||||
@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
|
||||||
<channel>
|
|
||||||
<title>tips & tricks on Rsmsn Blog</title>
|
|
||||||
<link>/tags/tips-tricks.html</link>
|
|
||||||
<description>Recent content in tips & tricks on Rsmsn Blog</description>
|
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
|
||||||
<language>en-us</language>
|
|
||||||
<lastBuildDate>Wed, 20 Sep 2023 11:33:22 -0400</lastBuildDate><atom:link href="/tags/tips-tricks/index.xml" rel="self" type="application/rss+xml" />
|
|
||||||
<item>
|
|
||||||
<title>Trouble Hosting Hugo with Nginx</title>
|
|
||||||
<link>/posts/hosting_hugo_troubles.html</link>
|
|
||||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
|
||||||
|
|
||||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
|
||||||
<description>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&rsquo;m happy to share some reverse proxy nginx config files.</description>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>/tags/tips-tricks.html</title>
|
|
||||||
<link rel="canonical" href="../../../tags/tips-tricks.html">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=../../../tags/tips-tricks.html">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
|
||||||
<channel>
|
|
||||||
<title>troubleshooting on Rsmsn Blog</title>
|
|
||||||
<link>/tags/troubleshooting.html</link>
|
|
||||||
<description>Recent content in troubleshooting on Rsmsn Blog</description>
|
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
|
||||||
<language>en-us</language>
|
|
||||||
<lastBuildDate>Wed, 20 Sep 2023 11:33:22 -0400</lastBuildDate><atom:link href="/tags/troubleshooting/index.xml" rel="self" type="application/rss+xml" />
|
|
||||||
<item>
|
|
||||||
<title>Trouble Hosting Hugo with Nginx</title>
|
|
||||||
<link>/posts/hosting_hugo_troubles.html</link>
|
|
||||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
|
||||||
|
|
||||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
|
||||||
<description>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&rsquo;m happy to share some reverse proxy nginx config files.</description>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>/tags/troubleshooting.html</title>
|
|
||||||
<link rel="canonical" href="../../../tags/troubleshooting.html">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=../../../tags/troubleshooting.html">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -1,171 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" dir="auto">
|
|
||||||
|
|
||||||
<head><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>tutorial | Rsmsn Blog</title>
|
|
||||||
<meta name="keywords" content="">
|
|
||||||
<meta name="description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks.">
|
|
||||||
<meta name="author" content="Norm Rasmussen">
|
|
||||||
<link rel="canonical" href="../tags/tutorial.html">
|
|
||||||
<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="../tags/tutorial/index.xml">
|
|
||||||
<noscript>
|
|
||||||
<style>
|
|
||||||
#theme-toggle,
|
|
||||||
.top-link {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</noscript><meta property="og:title" content="tutorial" />
|
|
||||||
<meta property="og:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks." />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="/tags/tutorial.html" /><meta property="og:site_name" content="RsmsnBlog" />
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary"/>
|
|
||||||
<meta name="twitter:title" content="tutorial"/>
|
|
||||||
<meta name="twitter:description" content="A site to share self hosted tutorials, troubleshooting, and tips/tricks."/>
|
|
||||||
|
|
||||||
</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="Rsmsn Blog (Alt + H)">Rsmsn Blog</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">
|
|
||||||
<header class="page-header">
|
|
||||||
<h1>
|
|
||||||
tutorial
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<article class="post-entry tag-entry">
|
|
||||||
<header class="entry-header">
|
|
||||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
|
||||||
</h2>
|
|
||||||
</header>
|
|
||||||
<div class="entry-content">
|
|
||||||
<p>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.
|
|
||||||
Goal 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> · Norm Rasmussen</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="../">Rsmsn Blog</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>
|
|
||||||
@ -1,172 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<title>tutorial :: Rsmsn Blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="" />
|
|
||||||
<meta name="keywords" content="" />
|
|
||||||
|
|
||||||
<meta name="robots" content="noodp" />
|
|
||||||
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/tags/tutorial/" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://selfhosted.rsmsn.co/styles.css">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
<link rel="apple-touch-icon" href="https://selfhosted.rsmsn.co/img/theme-colors/orange.png">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:locale" content="en" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:title" content="tutorial">
|
|
||||||
<meta property="og:description" content="" />
|
|
||||||
<meta property="og:url" content="https://selfhosted.rsmsn.co/tags/tutorial/" />
|
|
||||||
<meta property="og:site_name" content="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image" content="img/favicon/%!s().png">
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="627">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link href="../../tags/tutorial/index.xml" rel="alternate" type="application/rss+xml" title="Rsmsn Blog" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container headings--one-size">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/">
|
|
||||||
<div class="logo">
|
|
||||||
Terminal
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Posts for: #tutorial</h1>
|
|
||||||
|
|
||||||
<div class="posts">
|
|
||||||
|
|
||||||
<article class="post on-list">
|
|
||||||
<h1 class="post-title">
|
|
||||||
<a href="https://selfhosted.rsmsn.co/posts/npm_to_nginx_tutorial/">Tutorial: Move from NginxProxyManager to Nginx</a>
|
|
||||||
</h1>
|
|
||||||
<div class="post-meta"><time class="post-date">2023-08-05</time></div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags">
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/tutorial/">tutorial</a>
|
|
||||||
|
|
||||||
#<a href="https://selfhosted.rsmsn.co/tags/self-hosted/">self-hosted</a>
|
|
||||||
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
|
|
||||||
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.
|
|
||||||
Goal 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.
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a class="read-more button" href="../../posts/npm_to_nginx_tutorial/"> →</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<span>© 2023 Powered by <a href="https://gohugo.io">Hugo</a></span>
|
|
||||||
|
|
||||||
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="../../bundle.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
|
||||||
<channel>
|
|
||||||
<title>tutorial on Rsmsn Blog</title>
|
|
||||||
<link>/tags/tutorial.html</link>
|
|
||||||
<description>Recent content in tutorial on Rsmsn Blog</description>
|
|
||||||
<generator>Hugo -- gohugo.io</generator>
|
|
||||||
<language>en-us</language>
|
|
||||||
<lastBuildDate>Sat, 05 Aug 2023 15:23:51 -0500</lastBuildDate><atom:link href="/tags/tutorial/index.xml" rel="self" type="application/rss+xml" />
|
|
||||||
<item>
|
|
||||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
|
||||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
|
||||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
|
||||||
|
|
||||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
|
||||||
<description>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.
|
|
||||||
Goal 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.</description>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>/tags/tutorial.html</title>
|
|
||||||
<link rel="canonical" href="../../../tags/tutorial.html">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=../../../tags/tutorial.html">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-us">
|
|
||||||
<head>
|
|
||||||
<title>https://selfhosted.rsmsn.co/tags/tutorial/</title>
|
|
||||||
<link rel="canonical" href="https://selfhosted.rsmsn.co/tags/tutorial/">
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://selfhosted.rsmsn.co/tags/tutorial/">
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
BIN
public/useful_commands.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 238 KiB |
BIN
static/new-website-cover.png
Normal file
|
After Width: | Height: | Size: 325 KiB |
BIN
static/useful_commands.png
Normal file
|
After Width: | Height: | Size: 90 KiB |