From a20786fe981844cad47889fce80bd95805d1e2dc Mon Sep 17 00:00:00 2001 From: Garrett Allen <98648590+Gerrrt@users.noreply.github.com> Date: Sat, 19 Sep 2026 06:39:38 +0000 Subject: [PATCH 1/2] docs(readme): the shield row names six tools and the Stack table names ten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A checkup of the badges found every one of them rendering and both workflow badges reading passing; what was stale was coverage. The Stack table below the row lists Alloy, Alertmanager, snmp_exporter, Proxmox VE and Docker Compose, and none of them had a shield; the Digest drift workflow — the one scheduled check that runs off-host — had no badge at all. Each of them has one now, and pfSense's badge carries the logo Simple Icons has for it. Alertmanager and snmp_exporter borrow the Prometheus mark, which is the project they belong to; Alloy borrows Grafana's for the same reason. Nothing about the counts changed: the README still says 43 ADRs and 7 dashboards, and the tree still agrees. Co-Authored-By: Claude Fable 5.1 --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e65b896..d8bb1dde 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,19 @@ **A segmented home network and its observability stack, managed as code.** [![CI](https://img.shields.io/github/actions/workflow/status/Gerrrt/HomeLab/ci.yml?branch=main&style=plastic&logo=githubactions&logoColor=white&label=CI)](https://github.com/Gerrrt/HomeLab/actions/workflows/ci.yml) +[![Digest drift](https://img.shields.io/github/actions/workflow/status/Gerrrt/HomeLab/digests.yml?branch=main&style=plastic&logo=githubactions&logoColor=white&label=Digest%20drift)](https://github.com/Gerrrt/HomeLab/actions/workflows/digests.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue?style=plastic)](LICENSE) [![SOPS](https://img.shields.io/badge/SOPS-6f42c1?style=plastic)](https://github.com/getsops/sops) [![age](https://img.shields.io/badge/age-6f42c1?style=plastic)](https://github.com/FiloSottile/age) [![Prometheus](https://img.shields.io/badge/Prometheus-E6522C?style=plastic&logo=prometheus&logoColor=white)](https://prometheus.io) +[![Alertmanager](https://img.shields.io/badge/Alertmanager-E6522C?style=plastic&logo=prometheus&logoColor=white)](https://prometheus.io/docs/alerting/latest/alertmanager/) +[![snmp_exporter](https://img.shields.io/badge/snmp__exporter-E6522C?style=plastic&logo=prometheus&logoColor=white)](https://github.com/prometheus/snmp_exporter) [![Grafana](https://img.shields.io/badge/Grafana-F46800?style=plastic&logo=grafana&logoColor=white)](https://grafana.com/oss/grafana/) [![Loki](https://img.shields.io/badge/Loki-F5A800?style=plastic&logo=grafana&logoColor=white)](https://grafana.com/oss/loki/) -[![pfSense](https://img.shields.io/badge/pfSense-FreeBSD%2016-212121?style=plastic)](https://www.pfsense.org) +[![Alloy](https://img.shields.io/badge/Alloy-F46800?style=plastic&logo=grafana&logoColor=white)](https://grafana.com/oss/alloy-opentelemetry-collector/) +[![pfSense](https://img.shields.io/badge/pfSense-FreeBSD%2016-212121?style=plastic&logo=pfsense&logoColor=white)](https://www.pfsense.org) +[![Proxmox VE](https://img.shields.io/badge/Proxmox%20VE-E57000?style=plastic&logo=proxmox&logoColor=white)](https://www.proxmox.com/en/proxmox-virtual-environment) +[![Docker Compose](https://img.shields.io/badge/Docker%20Compose-2496ED?style=plastic&logo=docker&logoColor=white)](https://docs.docker.com/compose/) [Start here](docs/runbooks/successor-handover.md) · [Architecture](docs/architecture.md) · From e36e7ebe73ac7539f6f244225298c7d22bb621e4 Mon Sep 17 00:00:00 2001 From: Garrett Allen <98648590+Gerrrt@users.noreply.github.com> Date: Sat, 19 Sep 2026 06:46:57 +0000 Subject: [PATCH 2/2] docs(readme): the Stack table gets its Storage, Media and Lab rows smaug has run TrueNAS since 2026-09-16 and the media stack since 2026-09-19, alexander has run the lab stack since 2026-09-07, and the table that says what the estate runs on named none of them. Three rows: TrueNAS 25.10 with the erebor mirror and the share; Jellyfin as the one stack deployed from TrueNAS's Docker rather than by make deploy; and the lab's own Prometheus, Loki and Grafana on a guest, with ADR-0028's rule that liveness crosses and telemetry does not. Co-Authored-By: Claude Fable 5.1 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d8bb1dde..0cce184d 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,9 @@ Full topology and data flow in [`docs/architecture.md`](docs/architecture.md). | --- | --- | --- | | Firewall / routing | [pfSense on FreeBSD 16](docs/network.md) | VLANs, DHCP, default-deny | | Virtualisation | Proxmox VE | Lab hypervisor | +| Storage | [TrueNAS 25.10](docs/runbooks/build-the-nas.md) | `smaug`: 2× 18 TB ZFS mirror `erebor`, the SMB share, and the Docker the media stack runs under | +| Media | [Jellyfin](stacks/media) | Quick Sync transcoding on the NAS; the one stack deployed from TrueNAS rather than by `make deploy` | +| Lab observability | [Prometheus, Loki, Grafana](stacks/lab) | On `alexander`, a guest on `Saruman`, with its own Prometheus; only liveness crosses to the estate's, never telemetry | | Metrics | [Prometheus](stacks/observability/prometheus) | 30-day retention capped at 12 GiB, remote-write receiver | | Logs | [Loki](stacks/observability/loki) | Single-binary, filesystem storage | | Collection | [Grafana Alloy](stacks/observability/alloy) | node + cAdvisor metrics, Docker/journal/syslog/auth logs |