Go to file
mirivlad 3981ffdf5e Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
app Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
bin Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
db/migrations Итерация 3: инвентарь устройств 2026-05-26 07:50:37 +08:00
docker Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00
public Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
scripts Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
storage Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00
templates Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
tests Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
.env.example Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
.gitignore Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
PLAN.md Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
README.md Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
composer.json Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00
composer.lock Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00
docker-compose.yml Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
phinx.php Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00
phpunit.xml Stabilize discovery workflow 2026-05-29 17:16:46 +08:00
Проект - Домовой.md Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00
Техническое задание - Домовой.md Итерация 1: каркас Slim 4 приложения 2026-05-26 07:26:55 +08:00

README.md

Домовой

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