Lots of changes to the website

This commit is contained in:
Blake Ridgway
2026-03-27 07:57:13 -05:00
parent 617624c179
commit 7e7480ecf9
33 changed files with 1539 additions and 184 deletions

View File

@@ -1,5 +1,5 @@
{{define "title"}}Infrastructure — Ridgway Systems{{end}}
{{define "meta-desc"}}Hardware inventory and network diagram for the Ridgway Systems OpenBSD homelab.{{end}}
{{define "meta-desc"}}Hardware inventory and network diagram for the Ridgway Systems FreeBSD homelab.{{end}}
{{define "content"}}
<div class="page-header">
@@ -22,19 +22,19 @@
<tr>
<td class="hw-name">fw01</td>
<td>SuperMicro 1U<br><span class="hw-spec">E3-1230v2 &bull; 16 GB RAM</span></td>
<td>OpenBSD</td>
<td>OPNsense 26.1</td>
<td>Firewall, router, VPN, reverse proxy<br><span class="hw-spec">pf &bull; relayd &bull; WireGuard &bull; unbound</span></td>
</tr>
<tr>
<td class="hw-name">srv01</td>
<td>Dell R720<br><span class="hw-spec">Xeon E5-2620 &bull; 96 GB RAM</span></td>
<td>OpenBSD</td>
<td>FreeBSD</td>
<td>Primary server<br><span class="hw-spec">Gitea &bull; httpd &bull; OpenSMTPD &bull; Prometheus &bull; Grafana &bull; Matrix</span></td>
</tr>
<tr>
<td class="hw-name">srv02</td>
<td>Dell R710<br><span class="hw-spec">Xeon X5560 &bull; 288 GB RAM</span></td>
<td>OpenBSD + Linux VMs</td>
<td>FreeBSD + Linux VMs</td>
<td>Backup, game servers<br><span class="hw-spec">nsd &bull; qemu &bull; Jellyfin &bull; secondary DNS</span></td>
</tr>
<tr>
@@ -43,46 +43,164 @@
<td>Fedora Linux 43</td>
<td>Daily driver, Ansible control node<br><span class="hw-spec">Development &bull; playbook management</span></td>
</tr>
<tr>
<td class="hw-name">ws02</td>
<td>Lenovo ThinkPad T14s<br><span class="hw-spec">AMD Ryzen Pro 5 8640HS &bull; 32 GB RAM</span></td>
<td>Fedora Linux 43</td>
<td>Mobile daily driver<br><span class="hw-spec">Development &bull; remote work</span></td>
</tr>
<tr>
<td class="hw-name">ws03</td>
<td>System76 Lemur Pro<br><span class="hw-spec">Intel Core i7-10210U &bull; 16 GB RAM</span></td>
<td>FreeBSD</td>
<td>FreeBSD testing machine<br><span class="hw-spec">Development &bull; testing</span></td>
</tr>
</tbody>
</table>
</section>
<section class="infra-section">
<h2>Network Diagram</h2>
<pre class="network-diagram">
Internet
|
[WAN interface]
|
+=================+
| fw01 | SuperMicro 1U
| OpenBSD | pf firewall
| relayd | WireGuard VPN
+=====+===========+
|
+-- [Management VLAN 1] -- fw01, switches, OOB
|
+-- [Servers VLAN 10] -- srv01, srv02
| |
| +-- srv01 (R720)
| | httpd / relayd (external traffic routed here)
| | Gitea, mail, monitoring, Matrix
| |
| +-- srv02 (R710)
| DNS (nsd), Jellyfin, game VMs
|
+-- [Desktop VLAN 20] -- ws01, personal devices
|
+-- [Game VLAN 30] -- game clients, gaming VMs
|
+-- [IoT/Guest VLAN 40] -- untrusted devices
<div class="netmap-wrap">
<svg class="netmap" viewBox="0 0 720 430" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Network topology diagram">
External traffic flow:
Internet --&gt; fw01 (relayd) --&gt; srv01 (httpd/app)
<!-- Internet -->
<g class="netmap-node" data-tooltip="Public internet — WAN uplink">
<rect x="285" y="10" width="150" height="38" rx="4" class="netmap-box netmap-box-internet"/>
<text x="360" y="34" class="netmap-label">Internet</text>
</g>
VPN:
WireGuard on fw01 --&gt; routed to server VLANs
</pre>
<!-- Internet → fw01 -->
<line x1="360" y1="48" x2="360" y2="88" class="netmap-line"/>
<!-- fw01 -->
<g class="netmap-node" data-tooltip="fw01 · SuperMicro 1U&#10;OPNsense 26.1&#10;&#10;Services: pf · relayd · WireGuard · unbound">
<rect x="220" y="88" width="280" height="44" rx="4" class="netmap-box netmap-box-fw"/>
<text x="360" y="107" class="netmap-label">fw01</text>
<text x="360" y="123" class="netmap-sublabel">OPNsense 26.1 · SuperMicro 1U</text>
</g>
<!-- fw01 → trunk line -->
<line x1="360" y1="132" x2="360" y2="160" class="netmap-line"/>
<!-- horizontal trunk -->
<line x1="60" y1="160" x2="660" y2="160" class="netmap-line"/>
<!-- VLAN drop lines -->
<line x1="60" y1="160" x2="60" y2="185" class="netmap-line"/>
<line x1="195" y1="160" x2="195" y2="185" class="netmap-line"/>
<line x1="360" y1="160" x2="360" y2="185" class="netmap-line"/>
<line x1="525" y1="160" x2="525" y2="185" class="netmap-line"/>
<line x1="660" y1="160" x2="660" y2="185" class="netmap-line"/>
<!-- VLAN 1 — Mgmt -->
<g class="netmap-node" data-tooltip="VLAN 1 · Management&#10;10.0.1.0/24&#10;&#10;Switches, OOB, firewall mgmt">
<rect x="10" y="185" width="100" height="38" rx="4" class="netmap-box netmap-box-vlan"/>
<text x="60" y="200" class="netmap-label netmap-label-sm">Mgmt</text>
<text x="60" y="215" class="netmap-sublabel">VLAN 1</text>
</g>
<!-- VLAN 10 — Servers -->
<g class="netmap-node" data-tooltip="VLAN 10 · Servers&#10;10.0.10.0/24&#10;&#10;srv01, srv02">
<rect x="145" y="185" width="100" height="38" rx="4" class="netmap-box netmap-box-vlan"/>
<text x="195" y="200" class="netmap-label netmap-label-sm">Servers</text>
<text x="195" y="215" class="netmap-sublabel">VLAN 10</text>
</g>
<!-- VLAN 20 — Desktop -->
<g class="netmap-node" data-tooltip="VLAN 20 · Desktop&#10;10.0.20.0/24&#10;&#10;ws01, personal devices">
<rect x="310" y="185" width="100" height="38" rx="4" class="netmap-box netmap-box-vlan"/>
<text x="360" y="200" class="netmap-label netmap-label-sm">Desktop</text>
<text x="360" y="215" class="netmap-sublabel">VLAN 20</text>
</g>
<!-- VLAN 30 — Game -->
<g class="netmap-node" data-tooltip="VLAN 30 · Game&#10;10.0.30.0/24&#10;&#10;Game clients, gaming VMs">
<rect x="475" y="185" width="100" height="38" rx="4" class="netmap-box netmap-box-vlan"/>
<text x="525" y="200" class="netmap-label netmap-label-sm">Game</text>
<text x="525" y="215" class="netmap-sublabel">VLAN 30</text>
</g>
<!-- VLAN 40 — IoT -->
<g class="netmap-node" data-tooltip="VLAN 40 · IoT/Guest&#10;10.0.40.0/24&#10;&#10;Untrusted / isolated devices">
<rect x="610" y="185" width="100" height="38" rx="4" class="netmap-box netmap-box-vlan"/>
<text x="660" y="200" class="netmap-label netmap-label-sm">IoT/Guest</text>
<text x="660" y="215" class="netmap-sublabel">VLAN 40</text>
</g>
<!-- Servers VLAN → hosts -->
<line x1="170" y1="223" x2="170" y2="255" class="netmap-line"/>
<line x1="170" y1="255" x2="145" y2="255" class="netmap-line"/>
<line x1="170" y1="255" x2="220" y2="255" class="netmap-line"/>
<line x1="145" y1="255" x2="145" y2="275" class="netmap-line"/>
<line x1="220" y1="255" x2="220" y2="275" class="netmap-line"/>
<!-- srv01 -->
<g class="netmap-node" data-tooltip="srv01 · Dell R720&#10;Xeon E5-2620 · 96 GB RAM&#10;FreeBSD&#10;&#10;httpd · Gitea · OpenSMTPD&#10;Prometheus · Grafana · Matrix">
<rect x="90" y="275" width="110" height="44" rx="4" class="netmap-box netmap-box-host"/>
<text x="145" y="293" class="netmap-label netmap-label-sm">srv01</text>
<text x="145" y="308" class="netmap-sublabel">Dell R720 · FreeBSD</text>
</g>
<!-- srv02 -->
<g class="netmap-node" data-tooltip="srv02 · Dell R710&#10;Xeon X5560 · 288 GB RAM&#10;FreeBSD + Linux VMs&#10;&#10;nsd · qemu · Jellyfin&#10;Game servers">
<rect x="165" y="275" width="110" height="44" rx="4" class="netmap-box netmap-box-host"/>
<text x="220" y="293" class="netmap-label netmap-label-sm">srv02</text>
<text x="220" y="308" class="netmap-sublabel">Dell R710 · FreeBSD</text>
</g>
<!-- Desktop VLAN → hosts -->
<line x1="360" y1="223" x2="360" y2="255" class="netmap-line"/>
<line x1="300" y1="255" x2="420" y2="255" class="netmap-line"/>
<line x1="300" y1="255" x2="300" y2="275" class="netmap-line"/>
<line x1="360" y1="255" x2="360" y2="275" class="netmap-line"/>
<line x1="420" y1="255" x2="420" y2="275" class="netmap-line"/>
<!-- ws01 -->
<g class="netmap-node" data-tooltip="ws01 · Desktop&#10;Intel Core i9-12900K · 64 GB RAM&#10;Fedora Linux 43&#10;&#10;Daily driver · Ansible control node">
<rect x="248" y="275" width="104" height="44" rx="4" class="netmap-box netmap-box-host"/>
<text x="300" y="293" class="netmap-label netmap-label-sm">ws01</text>
<text x="300" y="308" class="netmap-sublabel">Desktop · Fedora</text>
</g>
<!-- ws02 -->
<g class="netmap-node" data-tooltip="ws02 · Lenovo ThinkPad T14s&#10;AMD Ryzen Pro 5 8640HS · 32 GB RAM&#10;Fedora Linux 43&#10;&#10;Mobile daily driver">
<rect x="308" y="275" width="104" height="44" rx="4" class="netmap-box netmap-box-host"/>
<text x="360" y="293" class="netmap-label netmap-label-sm">ws02</text>
<text x="360" y="308" class="netmap-sublabel">ThinkPad T14s</text>
</g>
<!-- ws03 -->
<g class="netmap-node" data-tooltip="ws03 · System76 Lemur Pro&#10;Intel Core i7-10210U · 16 GB RAM&#10;FreeBSD&#10;&#10;FreeBSD testing machine">
<rect x="368" y="275" width="104" height="44" rx="4" class="netmap-box netmap-box-host"/>
<text x="420" y="293" class="netmap-label netmap-label-sm">ws03</text>
<text x="420" y="308" class="netmap-sublabel">Lemur Pro · FreeBSD</text>
</g>
</svg>
<!-- Tooltip element -->
<div class="netmap-tooltip" id="netmap-tooltip"></div>
</div>
<script>
(function() {
var tip = document.getElementById('netmap-tooltip');
document.querySelectorAll('.netmap-node').forEach(function(node) {
node.addEventListener('mouseenter', function(e) {
var text = node.getAttribute('data-tooltip') || '';
tip.textContent = text;
tip.classList.add('visible');
});
node.addEventListener('mousemove', function(e) {
tip.style.left = (e.pageX + 14) + 'px';
tip.style.top = (e.pageY - 10) + 'px';
});
node.addEventListener('mouseleave', function() {
tip.classList.remove('visible');
});
});
})();
</script>
</section>
<section class="infra-section">