name: netops-asset-manager
description: >
Manage IT infrastructure assets (routers, switches, servers, GPU clusters) through a modern Go + Vue 3 web platform.
Provides real-time health probing, SSH remote control, configuration backup, bulk import, network topology visualization,
PM2 process management, AI-assisted operations (OpenClaw), and LLM model management.
Supports H3C, Huawei, Cisco, MikroTik, Ruijie, DCN, and Linux systems.
Single binary deployment with embedded SPA frontend.
NetOps Asset Manager
A production-grade IT infrastructure asset management platform built with Go + Vue 3. Single binary deployment with embedded frontend.
Capabilities
- Device Management: Full CRUD for network devices with vendor auto-detection (H3C, Huawei, Cisco, MikroTik, Linux), SSH credential management, and bulk Excel/CSV import.
- Health Monitoring: Background goroutine performs ICMP ping + TCP:22 probing every 5 minutes, automatically updating device online/offline status.
- SSH Operations: Native Go SSH client for remote device reboot and running configuration backup (vendor-aware commands).
- Network Discovery: Nmap-based subnet scanning to discover new devices.
- AI Assistant: OpenClaw-powered chat interface with Markdown rendering and intent-based auto-registration of assets.
- Topology Visualization: Interactive network topology graph using vis-network.
- Process Management: PM2 process monitoring, control, and cross-machine deployment.
- Model Management: CRUD for AI model configurations synced to OpenClaw config.
- System Deployment: One-click deployment of Docker, vLLM, and llama.cpp.
Architecture
backend/ # Go (Gin + Ent ORM)
├── cmd/server/main.go # Server entry point
├── cmd/migrate/main.go # Data migration tool
├── ent/schema/ # Database models
└── internal/
├── auth/ # JWT + bcrypt + RBAC middleware
├── handler/ # API handlers (13 files)
├── router/ # Route registration
├── service/health/ # ICMP/TCP prober + scheduler
├── service/ssh/ # SSH client, reboot, backup
├── service/importer/ # Excel parser
└── embedded/ # Frontend embed.FS
frontend/ # Vue 3.4 + Vite 5 + TailwindCSS
├── src/stores/ # Pinia state management
├── src/views/ # 8 view pages
└── vite.config.ts
API Endpoints
| Method |
Path |
Auth |
Description |
| POST |
/api/users/login |
Public |
Login, returns JWT |
| GET |
/api/inventory |
Bearer |
List devices |
| POST |
/api/inventory/add |
operator+ |
Add device |
| PUT |
/api/inventory/:ip |
operator+ |
Update device |
| DELETE |
/api/inventory/:ip |
operator+ |
Delete device |
| POST |
/api/inventory/reboot/:ip |
operator+ |
SSH reboot |
| POST |
/api/inventory/backup/:ip |
operator+ |
SSH config backup |
| POST |
/api/inventory/import |
operator+ |
Bulk Excel import |
| GET |
/api/stats |
Bearer |
Dashboard statistics |
| POST |
/api/discover |
operator+ |
Nmap subnet scan |
| GET/POST/DELETE |
/api/topology/links |
Bearer/operator+ |
Topology links |
| GET/POST/PUT/DELETE |
/api/models |
Bearer/root |
AI model config |
| GET/POST |
/api/pm2/* |
Bearer/operator+ |
PM2 management |
| POST |
/api/chat |
Bearer |
AI assistant |
| GET |
/api/system/info |
Bearer |
System info |
Deployment
Quick Start
# Prerequisites: Go 1.26+, Node.js 22+, PostgreSQL 15+
createdb netops
# Option A: Run from source (no compilation)
cd frontend && npm install --legacy-peer-deps && cd ..
make run # Terminal 1: backend on :8081
make dev-frontend # Terminal 2: frontend on :5173
# Option B: Build single binary
make build
./netops # → http://localhost:8081 (admin / admin)
Docker
make docker-build
docker run -p 8081:8081 \
-e JWT_SECRET="secret" \
-v ~/.openclaw:/root/.openclaw \
netops-asset-manager:latest
Configuration
config.yaml with env var override support (via Viper):
| Key |
Default |
Description |
PORT |
8081 |
Listen port |
DATABASE_URL |
postgres://... |
PostgreSQL connection |
JWT_SECRET |
(change me) |
JWT signing key |
JWT_EXPIRY |
24h |
Token TTL |
PROBE_INTERVAL |
5m |
Health probe interval |
SSH_CONNECT_TIMEOUT |
10s |
SSH connection timeout |
Vendor → Driver Mapping
| Vendor |
Driver |
Config Command |
| H3C |
hp_comware |
display current-configuration |
| Huawei |
huawei |
display current-configuration |
| Cisco |
cisco_ios |
show running-config |
| MikroTik |
mikrotik_routeros |
/export |
| Linux |
linux |
cat /etc/os-release && ip addr |
References
references/automation.md — Automation implementation guide
references/vendors.md — Vendor command reference
references/dependencies.md — System dependency guide
references/snmp.md — SNMP configuration reference