92 lines
2.8 KiB
Markdown
92 lines
2.8 KiB
Markdown
# Домовой
|
||
|
||
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 и ничего не меняет на удалённых хостах.
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
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}
|
||
```
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
./scripts/bootstrap.sh
|
||
# Скрипт поднимает контейнеры, ждёт БД, применяет новые миграции
|
||
# и запускает scan worker.
|
||
```
|
||
|
||
Сетевое сканирование выполняется не web-запросом, а отдельным контейнером
|
||
`domovoy-worker`. Если scan job висит в `pending`, проверьте worker:
|
||
|
||
```bash
|
||
docker compose ps worker
|
||
docker compose logs -f worker
|
||
```
|
||
|
||
Для первого пользователя откройте `/setup` в браузере или выполните:
|
||
|
||
```bash
|
||
docker compose exec app php bin/console setup:user admin 'change-this-password'
|
||
```
|
||
|
||
## Миграции
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
./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
|