296 lines
14 KiB
HTML
296 lines
14 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Homelab Service Catalog</title>
|
|
<link rel="stylesheet" href="../shared.css">
|
|
</head>
|
|
<body class="theme-dark">
|
|
<main class="shell catalog-shell">
|
|
<nav class="topline">
|
|
<a href="../">All demos</a>
|
|
<a href="/demos.php">Website catalog</a>
|
|
</nav>
|
|
|
|
<section class="hero catalog-hero">
|
|
<p class="kicker">Inventory view</p>
|
|
<h1>Homelab Service Catalog</h1>
|
|
<p>Generated from <code>homelab.yml</code>. Use this as the operational map for hosts, ports, public routes, local URLs, ownership, and runbooks.</p>
|
|
</section>
|
|
|
|
<section class="grid host-grid" aria-label="Homelab hosts">
|
|
<article class="catalog-card service-host">
|
|
<span>control-plane</span>
|
|
<h2>debian</h2>
|
|
<p><strong>Address:</strong> 192.168.100.73</p>
|
|
<p><strong>Tailscale:</strong> 100.85.138.30</p>
|
|
<p><strong>Storage:</strong> /data/docker</p>
|
|
</article>
|
|
<article class="catalog-card service-host">
|
|
<span>dns-edge-worker</span>
|
|
<h2>rpi4</h2>
|
|
<p><strong>Address:</strong> 192.168.100.89</p>
|
|
<p><strong>Tailscale:</strong> 100.77.80.72</p>
|
|
<p><strong>Storage:</strong> /nvme-storage/docker</p>
|
|
</article>
|
|
<article class="catalog-card service-host">
|
|
<span>pimox</span>
|
|
<h2>opi5_pimox</h2>
|
|
<p><strong>Address:</strong> 192.168.100.80</p>
|
|
<p><strong>Tailscale:</strong> n/a</p>
|
|
<p><strong>Storage:</strong> opi5_ssd</p>
|
|
</article>
|
|
<article class="catalog-card service-host">
|
|
<span>public-edge</span>
|
|
<h2>oci_edge</h2>
|
|
<p><strong>Address:</strong> 132.145.170.74</p>
|
|
<p><strong>Tailscale:</strong> n/a</p>
|
|
<p><strong>Storage:</strong> n/a</p>
|
|
</article>
|
|
</section>
|
|
|
|
<section class="panel service-table-panel" aria-label="Homelab services">
|
|
<div class="table-scroll">
|
|
<table class="service-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>Host</th>
|
|
<th>Managed by</th>
|
|
<th>Local</th>
|
|
<th>Public</th>
|
|
<th>Docs</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Website</td>
|
|
<td>Kubernetes</td>
|
|
<td>Argo CD / apps/website</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://lab2025.duckdns.org">https://lab2025.duckdns.org</a></td>
|
|
<td><code>apps/website/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Demo Apps</td>
|
|
<td>Kubernetes</td>
|
|
<td>Argo CD / apps/demos-static</td>
|
|
<td><a href="http://192.168.100.240/demo-apps/">http://192.168.100.240/demo-apps/</a></td>
|
|
<td><a href="https://demos.lab2025.duckdns.org/">https://demos.lab2025.duckdns.org/</a></td>
|
|
<td><code>apps/demos-static/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Service Catalog</td>
|
|
<td>Kubernetes</td>
|
|
<td>Generated from homelab.yml</td>
|
|
<td><a href="http://192.168.100.240/demo-apps/homelab-catalog/">http://192.168.100.240/demo-apps/homelab-catalog/</a></td>
|
|
<td><a href="https://demos.lab2025.duckdns.org/homelab-catalog/">https://demos.lab2025.duckdns.org/homelab-catalog/</a></td>
|
|
<td><code>docs/service-catalog.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Gitea</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / jeannie deploy-gitea</td>
|
|
<td><a href="http://192.168.100.73:3000/">http://192.168.100.73:3000/</a></td>
|
|
<td><a href="https://lab2025.duckdns.org/git/">https://lab2025.duckdns.org/git/</a></td>
|
|
<td><code>infra/gitea/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>GitOps mirror</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Bare Git repository</td>
|
|
<td><code>/home/jv/git-server/my-homelab-configs.git</code></td>
|
|
<td><a href="ssh://jv@192.168.100.73/home/jv/git-server/my-homelab-configs.git">ssh://jv@192.168.100.73/home/jv/git-server/my-homelab-configs.git</a></td>
|
|
<td><code>README.md#gitops-and-gitea-actions</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Container Registry</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Argo CD / apps/container-registry</td>
|
|
<td><a href="http://192.168.100.73:30500/v2/_catalog">http://192.168.100.73:30500/v2/_catalog</a></td>
|
|
<td><span class="muted">not exposed</span></td>
|
|
<td><code>apps/container-registry/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Traefik</td>
|
|
<td>Kubernetes</td>
|
|
<td>OpenTofu / bootstrap/platform</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://lab2025.duckdns.org">https://lab2025.duckdns.org</a></td>
|
|
<td><code>README.md#loadbalancer-services</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Pi-hole</td>
|
|
<td>rpi4 (dns-edge-worker, 192.168.100.89)</td>
|
|
<td>Docker Compose / jeannie rpi-services</td>
|
|
<td><a href="http://192.168.100.89:8081/admin/">http://192.168.100.89:8081/admin/</a></td>
|
|
<td><span class="muted">not exposed</span></td>
|
|
<td><code>infra/rpi-services/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Unbound</td>
|
|
<td>rpi4 (dns-edge-worker, 192.168.100.89)</td>
|
|
<td>Docker Compose / jeannie rpi-services</td>
|
|
<td><code>192.168.100.89:53</code></td>
|
|
<td><span class="muted">not exposed</span></td>
|
|
<td><code>infra/rpi-services/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Uptime Kuma</td>
|
|
<td>rpi4 (dns-edge-worker, 192.168.100.89)</td>
|
|
<td>Docker Compose / jeannie rpi-services</td>
|
|
<td><a href="http://192.168.100.89:3001/">http://192.168.100.89:3001/</a></td>
|
|
<td><span class="muted">not exposed</span></td>
|
|
<td><code>infra/rpi-services/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Provisioning PXE/HTTP</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>OpenTofu / bootstrap/provisioning</td>
|
|
<td><a href="http://192.168.100.73:8088/">http://192.168.100.73:8088/</a></td>
|
|
<td><span class="muted">not exposed</span></td>
|
|
<td><code>bootstrap/provisioning/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Ollama</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Local Debian service</td>
|
|
<td><a href="http://192.168.100.73:11434">http://192.168.100.73:11434</a></td>
|
|
<td><span class="muted">not exposed</span></td>
|
|
<td><code>apps/website/ollama/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>OCI Edge</td>
|
|
<td>oci_edge</td>
|
|
<td>OpenTofu / bootstrap/edge</td>
|
|
<td><code>/opt/homelab-edge</code></td>
|
|
<td><a href="https://lab2025.duckdns.org">https://lab2025.duckdns.org</a></td>
|
|
<td><code>docs/runbooks/edge-failures.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Heimdall</td>
|
|
<td>Kubernetes</td>
|
|
<td>Argo CD / apps/heimdall</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://heimdall.lab2025.duckdns.org/">https://heimdall.lab2025.duckdns.org/</a></td>
|
|
<td><code>apps/heimdall/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>n8n</td>
|
|
<td>Kubernetes</td>
|
|
<td>Argo CD / apps/n8n</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://n8n.lab2025.duckdns.org/">https://n8n.lab2025.duckdns.org/</a></td>
|
|
<td><code>apps/n8n/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Argo CD</td>
|
|
<td>Kubernetes</td>
|
|
<td>OpenTofu / bootstrap/platform</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://argocd.lab2025.duckdns.org/">https://argocd.lab2025.duckdns.org/</a></td>
|
|
<td><code>bootstrap/platform/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Grafana</td>
|
|
<td>Kubernetes</td>
|
|
<td>OpenTofu / bootstrap/platform</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://grafana.lab2025.duckdns.org/">https://grafana.lab2025.duckdns.org/</a></td>
|
|
<td><code>bootstrap/platform/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Prometheus</td>
|
|
<td>Kubernetes</td>
|
|
<td>OpenTofu / bootstrap/platform</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://prometheus.lab2025.duckdns.org/">https://prometheus.lab2025.duckdns.org/</a></td>
|
|
<td><code>bootstrap/platform/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Alertmanager</td>
|
|
<td>Kubernetes</td>
|
|
<td>OpenTofu / bootstrap/platform</td>
|
|
<td><a href="http://192.168.100.240/">http://192.168.100.240/</a></td>
|
|
<td><a href="https://alertmanager.lab2025.duckdns.org/">https://alertmanager.lab2025.duckdns.org/</a></td>
|
|
<td><code>bootstrap/platform/</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Prowlarr</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:9696/">http://192.168.100.73:9696/</a></td>
|
|
<td><a href="https://prowlarr.lab2025.duckdns.org/">https://prowlarr.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Sonarr</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:8989/">http://192.168.100.73:8989/</a></td>
|
|
<td><a href="https://sonarr.lab2025.duckdns.org/">https://sonarr.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Radarr</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:7878/">http://192.168.100.73:7878/</a></td>
|
|
<td><a href="https://radarr.lab2025.duckdns.org/">https://radarr.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>qBittorrent</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:8080/">http://192.168.100.73:8080/</a></td>
|
|
<td><a href="https://qbittorrent.lab2025.duckdns.org/">https://qbittorrent.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Kapowarr</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:5656/">http://192.168.100.73:5656/</a></td>
|
|
<td><a href="https://kapowarr.lab2025.duckdns.org/">https://kapowarr.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Suwayomi</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:4567/">http://192.168.100.73:4567/</a></td>
|
|
<td><a href="https://suwayomi.lab2025.duckdns.org/">https://suwayomi.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Maintainerr</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:6246/">http://192.168.100.73:6246/</a></td>
|
|
<td><a href="https://maintainerr.lab2025.duckdns.org/">https://maintainerr.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>FlareSolverr</td>
|
|
<td>debian (control-plane, 192.168.100.73)</td>
|
|
<td>Docker Compose / infra/arr-stack</td>
|
|
<td><a href="http://192.168.100.73:8191/">http://192.168.100.73:8191/</a></td>
|
|
<td><a href="https://flaresolverr.lab2025.duckdns.org/">https://flaresolverr.lab2025.duckdns.org/</a></td>
|
|
<td><code>infra/arr-stack/README.md</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="panel command-panel">
|
|
<h2>Focused Checks</h2>
|
|
<p><code>./jeannie status</code> <code>./jeannie preflight</code> <code>./jeannie doctor-edge</code> <code>./jeannie doctor-gitea</code> <code>./jeannie doctor-rpi</code> <code>./jeannie doctor-cluster</code></p>
|
|
</section>
|
|
</main>
|
|
<script src="../theme.js"></script>
|
|
</body>
|
|
</html>
|