Skip to content

Generate network topology diagrams from YAML (diagram as code). SVG/HTML output with 900+ vendor icons. NetBox integration.

License

Notifications You must be signed in to change notification settings

konoe-akitoshi/shumoku

Repository files navigation

Shumoku

Important

製作者がJANOG57 NOCに参加中です。サーバー系機能のreadmeが全体的に整備されていません。 導入支援・技術サポートについてもお気軽にご相談ください。

  📧  contact@shumoku.dev   𝕏   @shumoku_dev

Shumoku Logo

Network topology visualization and monitoring platform. Define your network in YAML, get interactive diagrams with real-time metrics from Zabbix, Prometheus, and more.

License: MIT npm version Buy Me A Coffee

Website | Server Documentation

Topology viewer with live weathermap

Topology viewer — live traffic utilization overlay with vendor icons

NOC dashboard at JANOG57

Dashboard in production — JANOG57 NOC Live

Features

  • Live weathermap — Overlay real-time traffic utilization on links, color-coded by load
  • Alert visualization — Show active alerts from Zabbix, Prometheus, and Grafana on topology
  • Auto-generate from NetBox — Pull devices and cables from NetBox to build topology automatically
  • Interactive dashboards — Pan, zoom, and drill into multi-layer network views in the browser
  • 900+ vendor icons — Yamaha, Aruba, AWS, Juniper, and more — rendered at correct aspect ratios
  • Shareable links — Publish topology views with a share token — no login required

Getting Started

See Server Setup Guide for Docker, systemd, and manual deployment options.

What You Can Do

  1. Create topologies — Upload YAML files or write them in the built-in editor
  2. Connect data sources — Link Zabbix, Prometheus, or NetBox to pull live metrics
  3. Monitor in real-time — See node status and link utilization update live on your diagrams
  4. Build dashboards — Combine multiple topologies and metric widgets into custom views
  5. Share — Generate public links for read-only access without authentication

Integrations

Zabbix Pull traffic metrics, host status, and alerts via JSON-RPC API
Prometheus Query SNMP and node exporter metrics for link utilization
Grafana Receive alerts via webhook and display them on topology
NetBox Auto-discover topology from DCIM inventory and IPAM data
REST API Render topologies and fetch metrics programmatically from your own tools

YAML Example

name: "Simple Network"

settings:
  direction: TB
  theme: light

subgraphs:
  - id: core
    label: "Core Layer"

nodes:
  - id: rt-01
    label: "Router 01"
    type: router
    vendor: yamaha
    model: rtx3510
    parent: core

  - id: sw-01
    label: "Switch 01"
    type: l3-switch
    parent: core

links:
  - from:
      node: rt-01
      port: lan1
    to:
      node: sw-01
      port: ge-0/0/0
    bandwidth: 10G

npm Library

The rendering engine is also available as standalone npm packages.

Sample network diagram

npm install shumoku
import { YamlParser, HierarchicalLayoutEngine, SvgRenderer } from 'shumoku'

const graph = new YamlParser().parse(yamlString)
const layout = await new HierarchicalLayoutEngine().layout(graph)
const svg = new SvgRenderer().render(layout)

CLI is also available:

npx shumoku render network.yaml -o diagram.svg
npx shumoku render network.yaml -f html -o diagram.html

Playground | npm Documentation

Packages
Package Description
shumoku Main package (all-in-one)
@shumoku/core Core library (models, layout)
@shumoku/renderer SVG/HTML renderers + CLI
@shumoku/parser-yaml YAML parser
@shumoku/icons Vendor icons (Yamaha, Aruba, AWS, Juniper)
@shumoku/netbox NetBox API integration

Documentation

Development

git clone https://github.com/konoe-akitoshi/shumoku.git
cd shumoku
bun install
bun run build
bun run dev

Star History

Star History Chart

License

MIT

About

Generate network topology diagrams from YAML (diagram as code). SVG/HTML output with 900+ vendor icons. NetBox integration.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •