284794ec8d
Made-with: Cursor
2.2 KiB
2.2 KiB
nettopo-go
Минимальный старт проекта сетового инвентаризатора и топологии на Go без Docker.
Что уже есть
GET /health- проверка состояния API.POST /api/scans- создание задания скана.GET /api/scans/{id}- просмотр созданного задания.- Валидация CIDR и exclude IP.
- Хранилище в памяти (для старта). БД подключим следующим шагом.
Требования
- Go 1.22+
Проверка версии:
go version
Запуск локально
- Перейдите в проект:
cd nettopo-go
- Скопируйте переменные окружения:
cp .env.example .env
- Запустите API:
HTTP_ADDR=:8080 go run ./cmd/server
Быстрая проверка API
Проверка health:
curl -s http://localhost:8080/health
Создать scan:
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:
curl -s http://localhost:8080/api/scans/<scan_id>
Запуск как сервис на Linux (systemd)
- Собрать бинарник:
go build -o nettopo-server ./cmd/server
- Скопировать unit-файл:
sudo cp deploy/nettopo-go.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now nettopo-go
- Проверить статус:
systemctl status nettopo-go
Размещение за IIS на Windows
- Запускать
nettopo-server.exeкак Windows Service. - На IIS настроить Reverse Proxy к
http://localhost:8080. - Требуются URL Rewrite + ARR.
Следующим шагом добавим готовый шаблон web.config для IIS и миграции PostgreSQL.