Об этом проекте

Homelab Inventory — это самохостинговое веб-приложение для документирования, сборки, проверки совместимости и мониторинга оборудования homelab. Распространяется в виде Docker-образа (mriverodorta/homelab-inventory) и хранит все состояние в постоянном томе /data, используя базы данных SQLite для инвентаризации, телеметрии и каталога. Основные возможности, описанные в README: - Физическая документация: организуйте установки в проекты, каждый с фиксированным представлением Systems и одним или несколькими переупорядочиваемыми цветными рабочими областями Canvas. Размещайте серверы, NAS, пользовательские ПК, мониторы, коммутаторы, патч-панели, ИБП и удлинители на бесконечном холсте. Собирайте хосты из переиспользуемых CPU, материнских плат, охлаждения, ОЗУ, накопителей, GPU, проводных или радио-сетевых адаптеров, звуковых карт, корпусов и блоков питания. Соединяйте сетевые, дисплейные и питающие порты цветными ортогональными кабелями и просматривайте каждое соединение с любого конца. Доступный для поиска ящик инвентаря на рабочем столе или мобильном устройстве поддерживает создание, дублирование, архивирование, восстановление и безопасное удаление. - Проверка совместимости: проверяет сокет CPU, поколение и лимиты мощности; поколение памяти, ёмкость, скорость, ECC, соответствие DIMM/SO-DIMM и распределение слотов; отсеки и интерфейсы хранения; и соответствие слотов расширения через PCIe, M.2, Mini PCIe, USB, OCP, mezzanine, встроенные и проприетарные интерфейсы. Результаты классифицируются как Совместимо, Несовместимо или Неизвестно, с детерминированным распределением ресурсов, предупреждениями о несовместимости и предупреждениями о неполных данных. Находки можно просматривать или игнорировать, а проверки можно отключать для каждого хоста для намеренных исключений. - Каталог оборудования и шаблоны: необязательный подписанный каталог оборудования можно искать локально по категориям и специфичным для оборудования фильтрам, с импортом, связанным с проверенными ревизиями шаблонов. Обновления каталога просматриваются перед применением, сохраняя локальные имена, назначения, позиции на холсте, кабели и поля только для экземпляра. Установки могут работать полностью офлайн с подписанным снимком каталога или использовать частные шаблоны с импортом/экспортом JSON с контрольной суммой. Необязательные очищенные вклады исключают серийные номера, адреса, метки, назначения, топологию и данные агентов. - Мониторинг хостов: агент с исходящим подключением может быть установлен на хостах systemd Linux, Alpine/OpenRC, FreeBSD или OPNsense, сообщая о состоянии здоровья за минуту, истории пульса, CPU, памяти, времени работы и деталях ОС. Живое использование и телеметрия Inspector поступают через один аутентифицированный поток событий сервера после начального снимка. Локальное использование хранилища проверяется по физическим устройствам и точкам монтирования, включая таблицы разделов и топологию LVM или RAID. Локально установленные службы могут быть обнаружены, с ограниченной телеметрией контейнеров Docker или Podman по выбору. Отдельное проверенное сканирование оборудования может применять обнаруженные значения по одному полю за раз с поддержкой Undo. Необязательные оповещения Ntfy или универсальные вебхуки охватывают простои хостов и выбранные изменения служб, контейнеров или физического хранилища, с тихими часами, напоминаниями, повторами и сохранённой историей инцидентов. - Аутентификация и доступ: локальный пароль, OpenID Connect или гибридная аутентификация с приглашениями, сессиями, встроенными ролями и пользовательскими группами разрешений. Новые производственные установки требуют однократной настройки локального владельца; обновлённые установки по умолчанию отключают аутентификацию. OIDC использует поток Authorization Code с PKCE. Разрешения API применяются на стороне сервера с маршрутизацией по умолчанию-запрету. Команда восстановления может сбросить исходного владельца. - Общий доступ: явно выбранные представления Systems и Canvas могут быть опубликованы на lab.gd через локальный предпросмотр конфиденциальности, с публичным или скрытым доступом, неизменяемыми или заменяемыми ревизиями, ручной или дебаунс-синхронизацией, сроком действия, встраиванием и необязательными метаданными. Регистрация не отправляет содержимое инвентаря, и общий доступ может быть полностью отключён. - Резервное копирование и восстановление: полные или частичные переносимые резервные копии в формате .hlibackup, с проверкой путей, размеров, контрольных сумм, совместимости схемы и зависимостей разделов, резервной копией перед восстановлением, режимом обслуживания и автоматическим откатом при сбое. Поддерживаются запланированные зашифрованные резервные копии с настраиваемым хранением; пароль обязателен для запланированных резервных копий после создания материала аутентификации владельца. - Развёртывание: Docker Compose с тегами stable, latest или закреплённой версии; переменные окружения охватывают порт, каталог данных, канал обновления, интервал обновления реестра, общий доступ lab.gd, начальную загрузку аутентификации, секреты OIDC, ограничение скорости, доверие прокси и хранение телеметрии. README предупреждает о прямом暴露 приложения в публичный интернет без HTTPS и контроля доступа, и отмечает, что проект находится в активной разработке с помощью ИИ и должен рассматриваться как развивающийся инструмент, а не готовое корпоративное решение.