284794ec8d
Made-with: Cursor
105 lines
2.2 KiB
Markdown
105 lines
2.2 KiB
Markdown
# 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/<scan_id>
|
|
```
|
|
|
|
## Запуск как сервис на 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.
|