About this project
Homelab Inventory is a self-hosted web application for documenting, assembling, validating and monitoring homelab hardware. It is distributed as a Docker image (mriverodorta/homelab-inventory) and stores all state in a persistent /data volume, with SQLite databases for inventory, telemetry and catalog data.
Core capabilities described in the README:
- Physical documentation: organize installations into projects, each with a fixed Systems view and one or more reorderable, color-coded Canvas workspaces. Place servers, NAS devices, custom PCs, monitors, switches, patch panels, UPS systems and power strips on an infinite canvas. Assemble hosts from reusable CPUs, motherboards, cooling, RAM, storage, GPUs, wired or radio network adapters, sound cards, cases and power supplies. Connect network, display and power endpoints with color-coded, orthogonally routed cables and inspect each connection from either endpoint. A searchable desktop or mobile inventory drawer supports create, duplicate, archive, restore and safe removal.
- Compatibility validation: checks CPU socket, generation and power limits; memory generation, capacity, speed, ECC, DIMM/SO-DIMM fit and slot allocation; storage bays and interfaces; and expansion-slot fit across PCIe, M.2, Mini PCIe, USB, OCP, mezzanine, onboard and proprietary interfaces. Results are classified as Compatible, Incompatible or Unknown, with deterministic resource allocations, incompatibility warnings and incomplete-data warnings. Findings can be reviewed or ignored, and checks can be disabled per host for intentional exceptions.
- Hardware catalog and templates: an optional signed hardware catalog can be searched locally by category and hardware-specific filters, with imports linked to verified template revisions. Catalog updates are reviewed before applying while preserving local names, assignments, canvas positions, cables and instance-only fields. Installations can run fully offline with a signed catalog snapshot or use private templates with checksummed JSON import/export. Optional sanitized contributions exclude serials, addresses, labels, assignments, topology and agent evidence.
- Host monitoring: an outbound-only Agent can be enrolled on systemd Linux, Alpine/OpenRC, FreeBSD or OPNsense hosts, reporting one-minute health, heartbeat history, CPU, memory, uptime and OS details. Live utilization and Inspector telemetry arrive through one authenticated server-sent event stream after an initial snapshot. Local storage usage is inspected by physical device and mount point, including partition tables and LVM or RAID topology. Locally installed services can be discovered, with opt-in bounded Docker or Podman container telemetry. A separate reviewed hardware scan can apply detected values one field at a time with Undo support. Opt-in Ntfy or generic webhook alerts cover host outages and selected service, container or physical-storage changes, with quiet hours, reminders, retries and persisted incident history.
- Authentication and access: local-password, OpenID Connect or hybrid authentication with invitations, sessions, built-in roles and custom permission groups. Fresh production installs require one-time local owner setup; upgraded installs default to disabled authentication. OIDC uses Authorization Code flow with PKCE. API permissions are enforced server-side with default-deny routing. A recovery command can reset the original owner.
- Sharing: explicitly selected Systems and Canvas views can be published to lab.gd through a local privacy preview, with public or unlisted access, immutable or replaceable revisions, manual or debounced synchronization, expiration, embeds and opt-in metadata. Enrollment sends no inventory content, and sharing can be disabled entirely.
- Backup and restore: complete or section-based portable backups in the .hlibackup format, with validation of paths, sizes, checksums, schema compatibility and section dependencies, a pre-restore recovery backup, maintenance mode and automatic rollback on failure. Scheduled encrypted backups with configurable retention are supported; a passphrase is mandatory for scheduled backups once owner-authentication material exists.
- Deployment: Docker Compose with the stable, latest or pinned version tags; environment variables cover port, data directory, update channel, registry refresh interval, lab.gd sharing, authentication bootstrap, OIDC secrets, rate limiting, proxy trust and telemetry retention. The README warns against exposing the app directly to the public internet without HTTPS and access controls, and notes that the project is under active AI-assisted development and should be treated as an evolving tool rather than a finished enterprise CMDB.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.