The Problem

Homeowners with smart homes end up with information scattered across vendor apps, paper manuals, and notes. A camera system tells you a motion event happened but not which door it covers. Home Assistant controls devices but doesn't store the HVAC warranty or water heater service history. Organizing that information by location—"what's in the kitchen"—is what's missing.

What This Does

Home Information is a self-hosted Django application that creates a spatial, visual map of your home. You position items (appliances, cameras, documents) on a floor plan and attach manuals, maintenance records, and notes to each one. It integrates with Home Assistant, Frigate, ZoneMinder, Paperless-ngx, HomeBox, and Immich to pull in device states, camera feeds, and document links.

The core data model lives in src/hi/ with the server entry point at src/hi/environment/server.py. The frontend is Django templates plus JavaScript in src/hi/static/js/main.js. Docker deployment is handled through the Dockerfile and docker-compose.example.yml, with four GitHub Actions workflows for tests, Docker publishing, releases, and rollbacks.

How It Is Wired

Execution starts at src/manage.py (Django's standard entry point), which routes to the server module. The internal call graph has not been mapped for this repository, so the specific request-to-response flow is not fully traceable from static analysis alone.

What is clear from the structure: the application is a standard Django project with models, views, and templates. The integration layer is substantial—docs/dev/integrations/ documents eight external system integrations, each following the patterns in integration-guidelines.md and service-patterns.md. The docs/dev/shared/data-model.md and PlantUML diagrams in docs/dev/shared/diagrams/ define the core and display models.

External effects (database writes, API calls to Home Assistant or Frigate, file uploads) are handled through Django's ORM and the integration service modules. The widest blast radius sits in the integration layer: a change to the integration service patterns affects all eight external system connectors, and the 401 test files suggest the test suite is the safety net for those changes.

How To Use It

Setup — Docker is the supported path. The README's install command is:

curl -fsSL https://raw.githubusercontent.com/cassandra/home-information/master/install.sh | bash

Then visit http://localhost:9411.

Configuration — Environment variables are documented in docs/dev/shared/environment-variables.md. The docker-compose.example.yml shows the expected configuration surface. The deploy/env-generate.py script generates environment configurations, and deploy/env-drift-check.sh validates them.

Running it — For development, deploy/dev-setup.sh and dev/init-env-dev.sh handle setup. The Makefile provides build targets. Production runs through the Docker container defined in Dockerfile.

Real-World Use

A homeowner with a Frigate camera system and Home Assistant creates a floor plan of their house in Home Information. They position each camera on the map, link the Frigate integration, and set up alerting rules. When a motion event fires, the dashboard shows which zone on the map is active. They store the water heater manual as a document attached to the water heater's location, with a link to the Paperless-ngx archive, and track the last service date.

Code Health & Issues

Deep static analysis has not run for this repository yet. What the structure supports:

  • Low — No license file visible at the root (LICENSE.md is present, so this may be resolved).
  • Low — 2,176 files with 1,201 Python files is a large surface area for a 0-star fork; the upstream project (818 stars) is mature, so this is inherited complexity rather than new code.
  • Low — The .claude/ directory with 26 agent/command files suggests an AI-assisted workflow, which may produce inconsistent code style.

The Bottom Line

This is a functional, feature-complete home information manager with real integrations and a solid test suite. The spatial mapping approach is genuinely different from typical home automation dashboards. It's suitable for a technical homeowner willing to run Docker and configure integrations, but the 1,200+ Python files mean you should be comfortable navigating a large Django codebase if you plan to modify it.