<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[AIP] Homedex: a self-hosted inventory that writes your homelab's documentation from Docker and your reverse proxy]]></title><description><![CDATA[<p dir="auto">There is a thread in every selfhosted community every few weeks about keeping documentation together, and the top answer is usually a joke about not having any. That is what this is for.</p>
<p dir="auto">Homedex connects to your Docker hosts, plain SSH hosts, and Traefik, Caddy or Nginx Proxy Manager, then keeps a record of what is running where, on which port, behind which route, and when the certificates expire. It also keeps a change feed of what actually moved since the last scan, and flags routes pointing at containers that no longer exist.</p>
<p dir="auto">The part I could not find anywhere else: it parses reverse proxy config and joins it against discovered containers, so you get the domain to container mapping. That is the one nobody remembers and nobody writes down.</p>
<p dir="auto">Why not the usual suggestions. NetBox is good but it is a source of truth you type into, and for a homelab it becomes a chore. This has zero data entry. Scanopy draws topology maps, which is a different question to keeping records. Portracker does ports only, no routes or certificates.</p>
<p dir="auto">One Go binary with the UI embedded, or a distroless container around 12MB for amd64, arm64 and armv7. SQLite on disk, no telemetry, works fully air-gapped. Read-only by design: there are no write paths to the Docker API at all, the bundled compose file reaches the socket only through a filtering proxy with POST disabled, and container environment variables are never ingested so credentials cannot end up in an export. There is a CI check enforcing that last one.</p>
<p dir="auto">MIT, self-hostable in full with no paid tier. A month and a half old, one contributor, green CI and tagged releases. I run it against my own stack but I am not claiming maturity.</p>
<p dir="auto"><strong>AI declaration</strong></p>
<ul>
<li>Design (architecture, system design): Pair</li>
<li>Implementation (production code): Generated</li>
<li>Testing (tests, test plans, QA): Generated</li>
<li>Documentation (docs, comments, README): Generated</li>
<li>Review (code review, PR feedback): Assisted</li>
<li>Deployment (CI/CD configuration): Generated</li>
</ul>
<p dir="auto">I set the data model, the connector interface and the security posture, and reviewed and reworked throughout, but most of the code itself was generated under that direction.</p>
<p dir="auto">One concrete example of what that costs, since it is more useful than a label: containers were originally keyed by their Docker container ID, so a redeploy issued a new ID and the tool silently orphaned any notes attached to a service and reset its first-seen date. Fixed in v0.1.4 by keying on the container name. The compose service name does not work either, because scaling gives three live containers the same one.</p>
]]></description><link>https://forum.ieu.app/topic/6ded2eef-d7ff-4add-8e2d-265011e9c7d9/aip-homedex-a-self-hosted-inventory-that-writes-your-homelab-s-documentation-from-docker-and-your-reverse-proxy</link><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 01:52:41 GMT</lastBuildDate><atom:link href="https://forum.ieu.app/topic/6ded2eef-d7ff-4add-8e2d-265011e9c7d9.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Sep 2026 13:35:47 GMT</pubDate><ttl>60</ttl></channel></rss>