# nettopo-go Минимальный старт проекта сетового инвентаризатора и топологии на Go без Docker. ## Что уже есть - `GET /health` - проверка состояния API. - `POST /api/scans` - создание задания скана. - `GET /api/scans/{id}` - просмотр созданного задания. - Валидация CIDR и exclude IP. - Хранилище в памяти (для старта). БД подключим следующим шагом. ## Требования - Go 1.22+ Проверка версии: ```bash go version ``` ## Запуск локально 1. Перейдите в проект: ```bash cd nettopo-go ``` 2. Скопируйте переменные окружения: ```bash cp .env.example .env ``` 3. Запустите API: ```bash HTTP_ADDR=:8080 go run ./cmd/server ``` ## Быстрая проверка API Проверка health: ```bash curl -s http://localhost:8080/health ``` Создать scan: ```bash curl -s -X POST http://localhost:8080/api/scans \ -H "Content-Type: application/json" \ -d '{ "name":"Office scan", "cidrs":["192.168.1.0/24"], "exclude_ips":["192.168.1.1"], "options":{ "ping_timeout_ms":700, "ping_retries":1, "max_parallel_hosts":128, "port_scan_enabled":true, "ports":[22,80,443,161] } }' ``` Получить scan по id: ```bash curl -s http://localhost:8080/api/scans/ ``` ## Запуск как сервис на Linux (systemd) 1. Собрать бинарник: ```bash go build -o nettopo-server ./cmd/server ``` 2. Скопировать unit-файл: ```bash sudo cp deploy/nettopo-go.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now nettopo-go ``` 3. Проверить статус: ```bash systemctl status nettopo-go ``` ## Размещение за IIS на Windows - Запускать `nettopo-server.exe` как Windows Service. - На IIS настроить Reverse Proxy к `http://localhost:8080`. - Требуются URL Rewrite + ARR. Следующим шагом добавим готовый шаблон `web.config` для IIS и миграции PostgreSQL.