Files
ffs/public/docs/currentlab/index.html
T

444 lines
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" dir="auto" data-theme="dark">
<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>What&#39;s in the lab right now? | TheWittyBanter.com</title>
<meta name="keywords" content="">
<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="/docs/currentlab/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.6ff46447b1fa3f8a5cc0bcae48088decc3ae37f5fbc99406a3aefc3bf0e6044a.css" integrity="sha256-b/RkR7H6P4pcwLyuSAiN7MOuN/X7yZQGo678O/DmBEo=" 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="/favicon-32x32.png">
<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" hreflang="en" href="/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><meta property="og:url" content="/docs/currentlab/">
<meta property="og:site_name" content="TheWittyBanter.com">
<meta property="og:title" content="What&#39;s in the lab right now?">
<meta property="og:description" content="The networks 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 Im not too thrilled with the performance of our current setup. We use Tapo, and the small ones work fine - but the “good” one for the entryway doesnt support local account setup. We bought them in a pinch and theyve been effective, but Im not crazy about them. Immich">
<meta property="og:locale" content="en">
<meta property="og:type" content="article">
<meta property="article:section" content="docs">
<meta property="article:published_time" content="2026-07-31T22:33:32-04:00">
<meta property="article:modified_time" content="2026-07-31T22:33:32-04:00">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="What&#39;s in the lab right now?">
<meta name="twitter:description" content="The networks 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 Im not too thrilled with the performance of our current setup. We use Tapo, and the small ones work fine - but the “good” one for the entryway doesnt support local account setup. We bought them in a pinch and theyve been effective, but Im not crazy about them. Immich">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Docs",
"item": "/docs/"
}
{
"@type": "ListItem",
"position": 1 ,
"name": "What's in the lab right now?",
"item": "/docs/currentlab/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "What's in the lab right now?",
"name": "What\u0027s in the lab right now?",
"description": "The network\u0026rsquo;s in a cool spot right now.\nThe whole team The Gesellschaft TrueNAS on a 6th gen i7 with 32gb RAM\nServices here Frigate\nThis has been cool for storing footage from our IP cams, though I\u0026rsquo;m not too thrilled with the performance of our current setup. We use Tapo, and the small ones work fine - but the \u0026ldquo;good\u0026rdquo; one for the entryway doesn\u0026rsquo;t support local account setup. We bought them in a pinch and they\u0026rsquo;ve been effective, but I\u0026rsquo;m not crazy about them. Immich\n",
"keywords": [
],
"articleBody": "The networks in a cool spot right now.\nThe whole team The Gesellschaft TrueNAS on a 6th gen i7 with 32gb RAM\nServices here Frigate\nThis has been cool for storing footage from our IP cams, though Im not too thrilled with the performance of our current setup. We use Tapo, and the small ones work fine - but the “good” one for the entryway doesnt support local account setup. We bought them in a pinch and theyve been effective, but Im not crazy about them. Immich\nAn excellent tool that I havent given the time it deserves. Its intended to be a “set and forget” image backup, which its served well as, though I would like to delve a bit deeper. Time is an illusion. Jellyfin\nWhat else can I say. A perfect tool for streaming (ahem) acquired media. A bit clunky for music, however. So we use instead… Navidrome\nAnother perfect tool for interfacing with your media of the audio varitety. The metadata is only as good as YOU make it, but thats a fun mindless task for when you wanna get stoned and data entry for a bit. (What, just me?) Memos\nA 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 Ive since kinda abandoned it since building this. The Servbot Ubuntu 26.04 on a 4th Gen i5 with 16gb RAM\nA rugged little beast. Formerly part of a Proxmox cluster, running HA on three of these guys proved to be a bit much.\nServices here Nginx Proxy Manager\nSomething 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. Dockge\nHandy for deploying Docker stuff quickly. I like the interface Pinchflat\nFor archiving those important videos OpenSpeedTest\nshrugs Why not? Seerr\nBetter for requests than a Discord server Futo Notes\nId rather have my text files be my responsibility The Stack\nThe less said the better Gitea\nGetting familiar with that setup, but thats been clunky The Router Running OPNSense on a decommissioned kiosk computer I nabbed from work. A 7th gen i3 with two NIC jacks in a compact form factor… that had a locked bios. It booted legacy, though, and thats all I needed.\n",
"wordCount" : "398",
"inLanguage": "en",
"datePublished": "2026-07-31T22:33:32-04:00",
"dateModified": "2026-07-31T22:33:32-04:00",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "/docs/currentlab/"
},
"publisher": {
"@type": "Organization",
"name": "TheWittyBanter.com",
"logo": {
"@type": "ImageObject",
"url": "/favicon.ico"
}
}
}
</script>
</head>
<body id="top">
<header class="header">
<nav class="header-nav">
<div class="logo">
<a href="/" 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="/welcome" title="Welcome">
<span>Welcome</span>
</a>
</li>
<li>
<a href="/shows" title="Shows">
<span>Shows</span>
</a>
</li>
<li>
<a href="/music" title="Music">
<span>Music</span>
</a>
</li>
<li>
<a href="/reviews" title="Reviews">
<span>Reviews</span>
</a>
</li>
<li>
<a href="/posts" title="Blog">
<span>Blog</span>
</a>
</li>
<li>
<a href="/docs" title="Docs">
<span>Docs</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/">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 -0400'>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">
</ul>
</footer>
</article>
</main>
<footer class="footer">
<span>&copy; 2026 <a href="/">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>