domovoy/README.md

2.8 KiB
Raw Blame History

Домовой

Self-hosted система инвентаризации домашней и малой серверной инфраструктуры.

Что делает

  • Сканирует заданные локальные сетевые диапазоны
  • Находит устройства и предлагает создать карточки
  • После добавления SSH-доступа — read-only deep scan хоста
  • Находит сервисы, Docker-контейнеры, nginx vhost-ы, cron-задачи, backup-подсказки
  • Создаёт карточки сервисов и связи между устройствами и сервисами

Стек

  • PHP 8.3, Slim Framework 4, PDO
  • MariaDB
  • Bootstrap 5.3, htmx
  • Docker Compose
  • Phinx (миграции)

Предупреждение

Сканируйте только свои сети. Приложение read-only и ничего не меняет на удалённых хостах.

Установка

git clone <repo>
cd domovoy
cp .env.example .env
# Отредактируйте .env: задайте APP_SECRET, ENCRYPTION_KEY, DB_PASSWORD.
# Если 8080 занят, измените DOMOVOY_HTTP_PORT.
./scripts/bootstrap.sh
# Откройте http://localhost:${DOMOVOY_HTTP_PORT:-8080}

Запуск

./scripts/bootstrap.sh
# Скрипт поднимает контейнеры, ждёт БД, применяет новые миграции
# и запускает scan worker.

Сетевое сканирование выполняется не web-запросом, а отдельным контейнером domovoy-worker. Если scan job висит в pending, проверьте worker:

docker compose ps worker
docker compose logs -f worker

Для первого пользователя откройте /setup в браузере или выполните:

docker compose exec app php bin/console setup:user admin 'change-this-password'

Миграции

docker compose exec app php vendor/bin/phinx migrate
docker compose exec app php vendor/bin/phinx rollback
docker compose exec app php vendor/bin/phinx create MigrationName

Обычный запуск через ./scripts/bootstrap.sh уже выполняет phinx migrate. Ручной запуск нужен только для обслуживания или отладки.

Smoke test

./scripts/check.sh

Структура

domovoy/
  app/           # Controllers, Services, Repositories, Middleware
  db/migrations/ # Phinx миграции
  public/        # Точка входа, assets
  templates/     # PHP шаблоны
  bin/           # CLI команды
  docker/        # Dockerfile, nginx config
  storage/       # логи, scan results

Лицензия

MIT