Files
nettopo-go/README.md
T
Andrey Lutsenko 284794ec8d Initial scaffold and technical specification
Made-with: Cursor
2026-04-09 21:40:04 +10:00

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

Запуск локально

  1. Перейдите в проект:
cd nettopo-go
  1. Скопируйте переменные окружения:
cp .env.example .env
  1. Запустите 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)

  1. Собрать бинарник:
go build -o nettopo-server ./cmd/server
  1. Скопировать unit-файл:
sudo cp deploy/nettopo-go.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now nettopo-go
  1. Проверить статус:
systemctl status nettopo-go

Размещение за IIS на Windows

  • Запускать nettopo-server.exe как Windows Service.
  • На IIS настроить Reverse Proxy к http://localhost:8080.
  • Требуются URL Rewrite + ARR.

Следующим шагом добавим готовый шаблон web.config для IIS и миграции PostgreSQL.