Files
ffs/public/docs/currentlab/index.html
T
2026-08-04 19:39:34 -04:00

387 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en" dir="auto" data-theme="dark">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><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="noindex, nofollow">
<title>What&#39;s in the lab right now? | TheWittyBanter.com</title>
<meta name="keywords" content="linux, homelab">
<meta name="description" content="The network&rsquo;s in a cool spot right now.
The whole team
The Gesellschaft
TrueNAS on a 6th gen i7 with 32gb RAM
Services here
Frigate
This has been cool for storing footage from our IP cams, though I&rsquo;m not too thrilled with the performance of our current setup. We use Tapo, and the small ones work fine - but the &ldquo;good&rdquo; one for the entryway doesn&rsquo;t support local account setup. We bought them in a pinch and they&rsquo;ve been effective, but I&rsquo;m not crazy about them.
Immich">
<meta name="author" content="">
<link rel="canonical" href="//localhost:1313/docs/currentlab/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.cd9298b33628769aa1bc1acebbbfd7aa11ce81dfe03484d479e1907760249a1d.css" integrity="sha256-zZKYszYodpqhvBrOu7/XqhHOgd/gNITUeeGQd2Akmh0=" rel="preload stylesheet" as="style">
<link rel="icon" href="//localhost:1313/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/favicon-32x32.png">
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="en" href="//localhost:1313/docs/currentlab/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
</noscript>
<script>
if (localStorage.getItem("pref-theme") === "light") {
document.querySelector("html").dataset.theme = 'light';
}
</script>
</head>
<body id="top">
<header class="header">
<nav class="header-nav">
<div class="logo">
<a href="//localhost:1313/" accesskey="h" title="TheWittyBanter.com (Alt + H)">TheWittyBanter.com</a>
<div class="logo-switches">
<button id="theme-toggle" class="theme-toggle" accesskey="t" title="(Alt + T)" aria-label="Toggle theme">
<svg class="moon" xmlns="http://www.w3.org/2000/svg" width="17" height="17" 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 class="sun" xmlns="http://www.w3.org/2000/svg" width="17" height="17" 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" class="menu">
<li>
<a href="//localhost:1313/welcome" title="Welcome">
<span>Welcome</span>
</a>
</li>
<li>
<a href="//localhost:1313/shows" title="Shows">
<span>Shows</span>
</a>
</li>
<li>
<a href="//localhost:1313/music" title="Music">
<span>Music</span>
</a>
</li>
<li>
<a href="//localhost:1313/reviews" title="Reviews">
<span>Reviews</span>
</a>
</li>
<li>
<a href="//localhost:1313/posts" title="Blog">
<span>Blog</span>
</a>
</li>
<li>
<a href="//localhost:1313/docs" title="Docs">
<span>Docs</span>
</a>
</li>
<li>
<a href="//localhost:1313/tags/" title="Tags">
<span>Tags</span>
</a>
</li>
<li>
<a href="//localhost:1313/search/" title="Search (Alt &#43; /)" accesskey=/>
<span>Search</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<article class="post-single">
<header class="post-header">
<nav class="breadcrumbs" role="navigation" aria-label="Breadcrumb">
<a href="/">Home</a>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
<a href="/docs/"></a>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</nav>
<h1 class="post-title entry-hint-parent">
What&#39;s in the lab right now?
</h1>
<div class="post-meta">
<span title='2026-07-31 22:33:32 -0400 EDT'>July 31, 2026</span>&nbsp;·&nbsp;<span>2 min</span>
</div>
</header> <details class="toc" >
<summary accesskey="c" title="(Alt + C)">
<span class="title">Table of Contents</span>
</summary>
<div class="inner"><ul>
<li>
<a href="#the-gesellschaft" aria-label="The Gesellschaft">The Gesellschaft</a><ul>
<li>
<a href="#services-here" aria-label="Services here">Services here</a></li></ul>
</li>
<li>
<a href="#the-servbot" aria-label="The Servbot">The Servbot</a><ul>
<li>
<a href="#services-here-1" aria-label="Services here">Services here</a></li></ul>
</li>
<li>
<a href="#the-router" aria-label="The Router">The Router</a>
</li>
</ul>
</div>
</details>
<div class="post-content md-content"><p>The network&rsquo;s in a cool spot right now.</p>
<figure>
<img loading="lazy" src="/images/lab.jpg" width="600"/> <figcaption>
The whole team
</figcaption>
</figure>
<hr>
<h1 id="the-gesellschaft">The Gesellschaft<a hidden class="anchor" aria-hidden="true" href="#the-gesellschaft">#</a></h1>
<p><em>TrueNAS on a 6th gen i7 with 32gb RAM</em></p>
<h2 id="services-here">Services here<a hidden class="anchor" aria-hidden="true" href="#services-here">#</a></h2>
<p><strong>Frigate</strong></p>
<ul>
<li>This has been cool for storing footage from our IP cams, though I&rsquo;m not too thrilled with the performance of our current setup. We use Tapo, and the small ones work fine - but the &ldquo;good&rdquo; one for the entryway doesn&rsquo;t support local account setup. We bought them in a pinch and they&rsquo;ve been effective, but I&rsquo;m not crazy about them.</li>
</ul>
<p><strong>Immich</strong></p>
<ul>
<li>An excellent tool that I haven&rsquo;t given the time it deserves. It&rsquo;s intended to be a &ldquo;set and forget&rdquo; image backup, which it&rsquo;s served well as, though I would like to delve a bit deeper. Time is an illusion.</li>
</ul>
<p><strong>Jellyfin</strong></p>
<ul>
<li>What else can I say. A perfect tool for streaming (<em>ahem</em>) acquired media. A bit clunky for music, however. So we use instead&hellip;</li>
</ul>
<p><strong>Navidrome</strong></p>
<ul>
<li>Another perfect tool for interfacing with your media of the audio varitety. The metadata is only as good as YOU make it, but that&rsquo;s a fun mindless task for when you wanna get stoned and data entry for a bit. (What, just me?)</li>
</ul>
<p><strong>Memos</strong></p>
<ul>
<li>A fun markdown-based tool for keeping notes, designed to look and function like a self-hosted Twitter. Sorts by tags, comes with a search integrated. Real fun to mess with, though I&rsquo;ve since kinda abandoned it since building this.</li>
</ul>
<hr>
<h1 id="the-servbot">The Servbot<a hidden class="anchor" aria-hidden="true" href="#the-servbot">#</a></h1>
<p><em>Ubuntu 26.04 on a 4th Gen i5 with 16gb RAM</em></p>
<p>A rugged little beast. Formerly part of a Proxmox cluster, running HA on three of these guys proved to be a bit much.</p>
<h2 id="services-here-1">Services here<a hidden class="anchor" aria-hidden="true" href="#services-here-1">#</a></h2>
<p><strong>Nginx Proxy Manager</strong></p>
<ul>
<li>Something I started using early on, as soon as I bought the first domain. I know how to use it, it handles Cloudflare well, so far little complaints.</li>
</ul>
<p><strong>Dockge</strong></p>
<ul>
<li>Handy for deploying Docker stuff quickly. I like the interface</li>
</ul>
<p><strong>Pinchflat</strong></p>
<ul>
<li>For archiving those important videos</li>
</ul>
<p><strong>OpenSpeedTest</strong></p>
<ul>
<li><em>shrugs</em> Why not?</li>
</ul>
<p><strong>Seerr</strong></p>
<ul>
<li>Better for requests than a Discord server</li>
</ul>
<p><strong>Futo Notes</strong></p>
<ul>
<li>I&rsquo;d rather have my text files be my responsibility</li>
</ul>
<p><strong>The Stack</strong></p>
<ul>
<li>The less said the better</li>
</ul>
<p><strong>Gitea</strong></p>
<ul>
<li>Getting familiar with that setup, but that&rsquo;s been clunky</li>
</ul>
<hr>
<h1 id="the-router">The Router<a hidden class="anchor" aria-hidden="true" href="#the-router">#</a></h1>
<p>Running OPNSense on a decommissioned kiosk computer I nabbed from work. A 7th gen i3 with two NIC jacks in a compact form factor&hellip; that had a locked bios. It booted legacy, though, and that&rsquo;s all I needed.</p>
<hr>
</div>
<footer class="post-footer">
<ul class="post-tags">
<li><a href="//localhost:1313/tags/linux/">Linux</a></li>
<li><a href="//localhost:1313/tags/homelab/">Homelab</a></li>
</ul>
</footer>
</article>
</main>
<footer class="footer">
<span>&copy; 2026 <a href="//localhost:1313/">TheWittyBanter.com</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/?utm_source=papermod" rel="noopener" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" id="top-link" class="top-link hidden" aria-label="go to top" title="Go to Top (Alt + G)" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevrons-up">
<polyline points="17 11 12 6 7 11"></polyline>
<polyline points="17 18 12 13 7 18"></polyline>
</svg>
</a>
<script>
let menu = document.getElementById('menu');
if (menu) {
const scrollPosition = localStorage.getItem("menu-scroll-position");
if (scrollPosition) {
menu.scrollLeft = parseInt(scrollPosition, 10);
}
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 toplink = document.getElementById("top-link");
window.onscroll = function () {
const scrollThreshold = window.innerHeight;
if (document.body.scrollTop > scrollThreshold || document.documentElement.scrollTop > scrollThreshold) {
toplink.classList.remove("hidden");
} else {
toplink.classList.add("hidden");
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
const html = document.querySelector("html");
if (html.dataset.theme === "dark") {
html.dataset.theme = 'light';
localStorage.setItem("pref-theme", 'light');
} else {
html.dataset.theme = 'dark';
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
<script>
document.querySelectorAll('pre > code').forEach((codeblock) => {
const container = codeblock.parentNode.parentNode;
const copybutton = document.createElement('button');
copybutton.classList.add('copy-code');
copybutton.innerHTML = 'copy';
function copyingDone() {
copybutton.innerHTML = 'copied!';
setTimeout(() => {
copybutton.innerHTML = 'copy';
}, 2000);
}
copybutton.addEventListener('click', (cb) => {
if ('clipboard' in navigator) {
navigator.clipboard.writeText(codeblock.textContent);
copyingDone();
return;
}
const range = document.createRange();
range.selectNodeContents(codeblock);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
try {
document.execCommand('copy');
copyingDone();
} catch (e) { };
selection.removeRange(range);
});
if (container.classList.contains("highlight")) {
container.appendChild(copybutton);
} else if (container.parentNode.firstChild == container) {
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
} else {
codeblock.parentNode.appendChild(copybutton);
}
});
</script>
</body>
</html>