Initial scaffold and technical specification
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user