Set draft = false on first post.

This commit is contained in:
mustard 2024-08-30 19:53:35 +02:00
parent c3f3670d56
commit ed30b02fe8
7 changed files with 407 additions and 3 deletions

View file

@ -85,6 +85,20 @@
</nav> </nav>
</header> </header>
<main class="main"> <main class="main">
<article class="first-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">My Homelab
</h2>
</header>
<div class="entry-content">
<p>Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode....</p>
</div>
<footer class="entry-footer"><span title='2024-08-30 13:39:47 +0200 CEST'>August 30, 2024</span></footer>
<a class="entry-link" aria-label="post link to My Homelab" href="https://homelab0ne.xyz/posts/portfolio/"></a>
</article>
</main> </main>
<footer class="footer"> <footer class="footer">

View file

@ -7,12 +7,22 @@
<id>https://homelab0ne.xyz/</id> <id>https://homelab0ne.xyz/</id>
<generator uri="http://gohugo.io" version="0.121.2">Hugo</generator> <generator uri="http://gohugo.io" version="0.121.2">Hugo</generator>
<language>en-us</language> <language>en-us</language>
<updated>0001-01-01T00:00:00Z</updated> <updated>2024-08-30T13:39:47+02:00</updated>
<author> <author>
</author> </author>
<entry>
<title>My Homelab</title>
<link rel="alternate" href="https://homelab0ne.xyz/posts/portfolio/" />
<id>https://homelab0ne.xyz/posts/portfolio/</id>
<published>2024-08-30T13:39:47+02:00</published>
<updated>2024-08-30T13:39:47+02:00</updated>
<summary type="html">Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode.</summary>
</entry>
</feed> </feed>

126
public/posts/index.html Normal file
View file

@ -0,0 +1,126 @@
<!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>Posts | homelab0ne</title>
<meta name="keywords" content="">
<meta name="description" content="Posts - homelab0ne">
<meta name="author" content="">
<link rel="canonical" href="https://homelab0ne.xyz/posts/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.5d45b8bd1a3cf526e72959d51f1bdc688d8e97fa0df2a697a93df6bdc746feb4.css" integrity="sha256-XUW4vRo89SbnKVnVHxvcaI2Ol/oN8qaXqT32vcdG/rQ=" rel="preload stylesheet" as="style">
<noscript>
<link crossorigin="anonymous" href="/css/includes/noscript.30127fa68e36d08f5dd7f9d4e717dac42e729b844672afd0fbcacb0d9e508595.css" integrity="sha256-MBJ/po420I9d1/nU5xfaxC5ym4RGcq/Q&#43;8rLDZ5QhZU=" rel="preload stylesheet" as="style">
</noscript>
<link rel="icon" href="https://homelab0ne.xyz/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://homelab0ne.xyz/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://homelab0ne.xyz/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://homelab0ne.xyz/apple-touch-icon.png">
<link rel="mask-icon" href="https://homelab0ne.xyz/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://homelab0ne.xyz/posts/index.xml">
<meta property="og:title" content="Posts" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://homelab0ne.xyz/posts/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Posts"/>
<meta name="twitter:description" content=""/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
"item": "https://homelab0ne.xyz/posts/"
}
]
}
</script>
</head>
<body class="list" id="top">
<script crossorigin="anonymous" src="/assets/js/theme.b20f95bb4da41ef90a2610a557a7000b2649a3f47282ec571676da6fc0427200.js" integrity="sha256-sg&#43;Vu02kHvkKJhClV6cACyZJo/RyguxXFnbab8BCcgA="></script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://homelab0ne.xyz/" accesskey="h" title="homelab0ne (Alt + H)">homelab0ne</a>
<div class="logo-switches">
<button type="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>
<input name="hamburger-input" id="hamburger-input" type="checkbox" aria-label="Navigation Menu">
<label id="hamburger-menu" for="hamburger-input"></label>
<div class="overlay"></div>
<ul id="menu">
</ul>
</nav>
</header>
<main class="main">
<header class="page-header">
<h1>
Posts
</h1>
</header>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">My Homelab
</h2>
</header>
<div class="entry-content">
<p>Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode....</p>
</div>
<footer class="entry-footer"><span title='2024-08-30 13:39:47 +0200 CEST'>August 30, 2024</span></footer>
<a class="entry-link" aria-label="post link to My Homelab" href="https://homelab0ne.xyz/posts/portfolio/"></a>
</article>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://homelab0ne.xyz/">homelab0ne</a></span>
<span>
- Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer">Hugo</a> &
<a href="https://github.com/Wonderfall/hugo-WonderMod/" rel="noopener">WonderMod</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 defer crossorigin="anonymous" src="/assets/js/papermod.727d74878dd0d630d592de1483de40c9393b9d59c42ec34eeac2b18635dd8959.js" integrity="sha256-cn10h43Q1jDVkt4Ug95AyTk7nVnELsNO6sKxhjXdiVk="></script>
</body>
</html>

29
public/posts/index.xml Normal file
View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Posts on homelab0ne</title>
<link rel="alternate" href="https://homelab0ne.xyz/posts/" />
<link rel="self" href="https://homelab0ne.xyz/posts/index.xml" />
<subtitle>Recent content in Posts on homelab0ne</subtitle>
<id>https://homelab0ne.xyz/posts/</id>
<generator uri="http://gohugo.io" version="0.121.2">Hugo</generator>
<language>en-us</language>
<updated>2024-08-30T13:39:47+02:00</updated>
<author>
</author>
<entry>
<title>My Homelab</title>
<link rel="alternate" href="https://homelab0ne.xyz/posts/portfolio/" />
<id>https://homelab0ne.xyz/posts/portfolio/</id>
<published>2024-08-30T13:39:47+02:00</published>
<updated>2024-08-30T13:39:47+02:00</updated>
<summary type="html">Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode.</summary>
</entry>
</feed>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<title>https://homelab0ne.xyz/posts/</title>
<link rel="canonical" href="https://homelab0ne.xyz/posts/">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=https://homelab0ne.xyz/posts/">
</head>
</html>

View file

@ -0,0 +1,208 @@
<!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>My Homelab | homelab0ne</title>
<meta name="keywords" content="">
<meta name="description" content="Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode.">
<meta name="author" content="">
<link rel="canonical" href="https://homelab0ne.xyz/posts/portfolio/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.5d45b8bd1a3cf526e72959d51f1bdc688d8e97fa0df2a697a93df6bdc746feb4.css" integrity="sha256-XUW4vRo89SbnKVnVHxvcaI2Ol/oN8qaXqT32vcdG/rQ=" rel="preload stylesheet" as="style">
<noscript>
<link crossorigin="anonymous" href="/css/includes/noscript.30127fa68e36d08f5dd7f9d4e717dac42e729b844672afd0fbcacb0d9e508595.css" integrity="sha256-MBJ/po420I9d1/nU5xfaxC5ym4RGcq/Q&#43;8rLDZ5QhZU=" rel="preload stylesheet" as="style">
</noscript>
<link rel="icon" href="https://homelab0ne.xyz/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://homelab0ne.xyz/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://homelab0ne.xyz/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://homelab0ne.xyz/apple-touch-icon.png">
<link rel="mask-icon" href="https://homelab0ne.xyz/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<meta property="og:title" content="My Homelab" />
<meta property="og:description" content="Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://homelab0ne.xyz/posts/portfolio/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2024-08-30T13:39:47+02:00" />
<meta property="article:modified_time" content="2024-08-30T13:39:47+02:00" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="My Homelab"/>
<meta name="twitter:description" content="Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.
It also has a 128 GB SSD as well as a 1 TB HDD.
Tech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode."/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
"item": "https://homelab0ne.xyz/posts/"
},
{
"@type": "ListItem",
"position": 2 ,
"name": "My Homelab",
"item": "https://homelab0ne.xyz/posts/portfolio/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "My Homelab",
"name": "My Homelab",
"description": "Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.\nIt also has a 128 GB SSD as well as a 1 TB HDD.\nTech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode.",
"keywords": [
],
"articleBody": " Hardware: Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.\nIt also has a 128 GB SSD as well as a 1 TB HDD.\nTech Stack: Proxmox is used as the hypervisor. Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode. I did consider flashing it with OpenWRT, but it is not supported by the latest version, and I did not want to risk bricking it as its my only such device. I dont run a pi-hole as its made redundant by the unbound DNS blocklist feature in OPNSense. As my home network is behind CG-NAT, a VM keeps a constant wireguard connection up to a hosthatch VPS. This allows port forwarding for a remote proxy as well as connecting into my LAN via wireguard. Services are run using docker compose in their own individual Fedora VMs Presently running services: Synapse server for matrix. In addition, it has sliding sync (to allow usage with ElementX) and is bridged with mautrix-meta so it can also receive messages from instagram. Forgejo git instance. Seafile for file syncing and backups of important documents. Nextcloud was considered, but seafile was apparently simpler to setup and less buggier. Security: The LAN is not treated as a security boundary, all services have restrictive firewall rules, and TLS is used for everything, including the proxmox and OPNSense web UIs. Certs are acquired using acme.sh and auto renewed using scoped deSEC tokens. No wildcard certs are used. Just because the deSEC DNS token for one service is compromised doesnt mean it can be used to issue TLS certificates for another subdomain (or for the base domain). Where possible, Chainguard images are used in order to be as up to date as possible. gVisor is also used on all containers. dnf packages and docker images are auto updated daily. gvisor is auto updated every boot. The hardware is too old to have a TPM 2.0, but I currently use a LUKS2 keyfile to encrypt the SSD where proxmox is installed. The HDD (where the VM disks are stored) is encrypted using ZFS native encryption to maintain performance. This doesnt really protect against someone breaking into my home and disassembling the PC, but it does save me from having to worry about leaking sensitive data when I dispose of the drives in the distant future. SSH is configured based off of GrapheneOS infrastructures config, only public key auth and modern ciphers with key exchange methods are allowed. Miscellaneous config files can be found here.\nFuture plans: Learn ansible. Right now, I simply clone a VM which I keep as a base template, but that can get cumbersome when I want to make a change to it. Document my current configs better so Im not completely lost when I come back to it six months from now. Self host more services such as Xanity or morss Have a better backup strategy. Right now there is no redundancy or backup if the hardware gets damaged. ",
"wordCount" : "523",
"inLanguage": "en",
"datePublished": "2024-08-30T13:39:47+02:00",
"dateModified": "2024-08-30T13:39:47+02:00",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://homelab0ne.xyz/posts/portfolio/"
},
"publisher": {
"@type": "Organization",
"name": "homelab0ne",
"logo": {
"@type": "ImageObject",
"url": "https://homelab0ne.xyz/favicon.ico"
}
}
}
</script>
</head>
<body class="" id="top">
<script crossorigin="anonymous" src="/assets/js/theme.b20f95bb4da41ef90a2610a557a7000b2649a3f47282ec571676da6fc0427200.js" integrity="sha256-sg&#43;Vu02kHvkKJhClV6cACyZJo/RyguxXFnbab8BCcgA="></script>
<header class="header">
<div id="progressBar"></div>
<nav class="nav">
<div class="logo">
<a href="https://homelab0ne.xyz/" accesskey="h" title="homelab0ne (Alt + H)">homelab0ne</a>
<div class="logo-switches">
<button type="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>
<input name="hamburger-input" id="hamburger-input" type="checkbox" aria-label="Navigation Menu">
<label id="hamburger-menu" for="hamburger-input"></label>
<div class="overlay"></div>
<ul id="menu">
</ul>
</nav>
</header>
<main class="main">
<article class="post-single">
<header class="post-header">
<h1 class="post-title entry-hint-parent">
My Homelab
</h1>
<div class="post-meta"><span title='2024-08-30 13:39:47 +0200 CEST'>August 30, 2024</span>
</div>
<div class="post-meta">
</div>
</header>
<div class="post-content"><p><img loading="lazy" src="/IMG_8531.jpg" alt="Image of a PC under a desk" />
<img loading="lazy" src="/neofetch.png" alt="Image of a PC under a desk" />
</p>
<h2 id="hardware">Hardware:<a hidden class="anchor" aria-hidden="true" href="#hardware">#</a></h2>
<p>Some old PC my uni computer lab was going to throw away otherwise along with my previous router (TL-WR841N), configured to function in AP mode.</p>
<p>It also has a 128 GB SSD as well as a 1 TB HDD.</p>
<h2 id="tech-stack">Tech Stack:<a hidden class="anchor" aria-hidden="true" href="#tech-stack">#</a></h2>
<ul>
<li>Proxmox is used as the hypervisor.</li>
<li>Networking is handled by virtualized OPNSense, both for VMs and for my various devices, which is why the TL-WR841N is in AP mode. I did consider flashing it with OpenWRT, but it is not supported by the latest version, and I did not want to risk bricking it as it&rsquo;s my only such device. I don&rsquo;t run a pi-hole as it&rsquo;s made redundant by the unbound DNS blocklist feature in OPNSense.</li>
<li>As my home network is behind CG-NAT, a VM keeps a constant wireguard connection up to a hosthatch VPS. This allows port forwarding for a remote proxy as well as connecting into my LAN via wireguard.</li>
<li>Services are run using docker compose in their own individual Fedora VMs</li>
</ul>
<h2 id="presently-running-services">Presently running services:<a hidden class="anchor" aria-hidden="true" href="#presently-running-services">#</a></h2>
<ul>
<li><a href="https://experimental-synapse.homelab0ne.xyz/_matrix/static/">Synapse server for matrix.</a> In addition, it has sliding sync (to allow usage with ElementX) and is bridged with <code>mautrix-meta</code> so it can also receive messages from instagram.</li>
<li><a href="https://forgejoever.homelab0ne.xyz/">Forgejo git instance.</a></li>
<li><a href="https://seafile.homelab0ne.xyz/">Seafile</a> for file syncing and backups of important documents. Nextcloud was considered, but seafile was apparently simpler to setup and less buggier.</li>
</ul>
<h2 id="security">Security:<a hidden class="anchor" aria-hidden="true" href="#security">#</a></h2>
<ul>
<li>The LAN is not treated as a security boundary, all services have restrictive firewall rules, and TLS is used for everything, including the proxmox and OPNSense web UIs. Certs are acquired using <code>acme.sh</code> and auto renewed using scoped deSEC tokens.</li>
<li>No wildcard certs are used. Just because the deSEC DNS token for one service is compromised doesnt mean it can be used to issue TLS certificates for another subdomain (or for the base domain).</li>
<li>Where possible, <a href="https://images.chainguard.dev/">Chainguard</a> images are used in order to be as up to date as possible. <a href="https://gvisor.dev/">gVisor</a> is also used on all containers.</li>
<li><code>dnf</code> packages and docker images are auto updated daily. gvisor is auto updated every boot.</li>
<li>The hardware is too old to have a TPM 2.0, but I currently use a LUKS2 keyfile to encrypt the SSD where proxmox is installed. The HDD (where the VM disks are stored) is encrypted using ZFS native encryption to maintain performance. This doesnt really protect against someone breaking into my home and disassembling the PC, but it does save me from having to worry about leaking sensitive data when I dispose of the drives in the distant future.</li>
<li>SSH is configured based off of <a href="https://github.com/GrapheneOS/infrastructure/blob/main/ssh/sshd_config">GrapheneOS infrastructure&rsquo;s config</a>, only public key auth and modern ciphers with key exchange methods are allowed.</li>
</ul>
<p>Miscellaneous config files can be found <a href="https://forgejoever.homelab0ne.xyz/mustard/fedora-server-config">here</a>.</p>
<h2 id="future-plans">Future plans:<a hidden class="anchor" aria-hidden="true" href="#future-plans">#</a></h2>
<ul>
<li>Learn ansible. Right now, I simply clone a VM which I keep as a base template, but that can get cumbersome when I want to make a change to it.</li>
<li>Document my current configs better so I&rsquo;m not completely lost when I come back to it six months from now.</li>
<li>Self host more services such as <a href="https://github.com/kylrth/xanity?tab=readme-ov-file">Xanity</a> or <a href="https://github.com/pictuga/morss">morss</a></li>
<li>Have a better backup strategy. Right now there is no redundancy or backup if the hardware gets damaged.</li>
</ul>
</div>
<footer class="post-footer">
<ul class="post-tags">
</ul>
</footer>
</article>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://homelab0ne.xyz/">homelab0ne</a></span>
<span>
- Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer">Hugo</a> &
<a href="https://github.com/Wonderfall/hugo-WonderMod/" rel="noopener">WonderMod</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 defer crossorigin="anonymous" src="/assets/js/papermod.727d74878dd0d630d592de1483de40c9393b9d59c42ec34eeac2b18635dd8959.js" integrity="sha256-cn10h43Q1jDVkt4Ug95AyTk7nVnELsNO6sKxhjXdiVk="></script>
</body>
</html>

View file

@ -2,9 +2,16 @@
<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>https://homelab0ne.xyz/categories/</loc>
</url><url>
<loc>https://homelab0ne.xyz/</loc> <loc>https://homelab0ne.xyz/</loc>
<lastmod>2024-08-30T13:39:47+02:00</lastmod>
</url><url>
<loc>https://homelab0ne.xyz/posts/portfolio/</loc>
<lastmod>2024-08-30T13:39:47+02:00</lastmod>
</url><url>
<loc>https://homelab0ne.xyz/posts/</loc>
<lastmod>2024-08-30T13:39:47+02:00</lastmod>
</url><url>
<loc>https://homelab0ne.xyz/categories/</loc>
</url><url> </url><url>
<loc>https://homelab0ne.xyz/tags/</loc> <loc>https://homelab0ne.xyz/tags/</loc>
</url> </url>