netviz GitHub

netviz documentation

Everything netviz can do, arranged by what you are trying to get done. Start with the table: find the row that describes your problem and follow the link. If you have never run netviz before, getting-started.md is the one to read first — or spend two minutes in the live demo first, which needs nothing installed.

This whole documentation set is also published, with those demos beside it, at https://blechschmidt.github.io/netviz/.

If you want to…

If you want to… Read
see what netviz draws before installing anything the live demo, then getting-started.md
install netviz and draw your first diagram getting-started.md
decide how to lay out your files, namespaces and templates inventory-layout.md
know exactly what a field means or what values it accepts schema-reference.md
know why the schema is shaped the way it is, normatively schema.md
control what a diagram shows — layers, filters, icons, formats rendering.md
give the diagram your own colours, shapes and house style styling.md
arrange the diagram by hand and have it stay arranged commands/layout.md
understand a finding, or silence one validation.md
look up one validation rule by its id validation-rules.md
check subnet utilisation, find free space, hunt overlaps ipam.md
find out how two machines reach each other paths.md
ask "every access switch in site north with no uplink" — once, and everywhere query.md
ask "every interface with an address, and what it is attached to" — as data nql.md
keep the YAML in one canonical form format.md
change the inventory safely, from a script or an editor editing.md
get completion, inline errors and rename in your editor lsp.md
diff two inventory states, review the change, and apply it commands/plan.md, commands/apply.md
adopt what a live network reports into the declared inventory commands/drift.md, commands/plan.md
turn drift into an ordered, per-device remediation script commands/converge.md
gate a pull request on the inventory validating ci.md
get the change drawn and reviewed on every pull request commands/review.md, ci.md
publish a live diagram of your own network, rebuilt on every push ci.md
write down what the network is for, and fail CI when it stops being true commands/test.md
bootstrap an inventory from a network that already exists importing.md
stop retyping the same flags configuration.md
run it without installing Python or Graphviz docker.md
turn the inventory into hosts files, DNS zones, Ansible or Prometheus export.md
run Ansible against the inventory, and query it from a template ansible.md
generate the netplan, systemd-networkd, ifupdown, FRR, nftables or WireGuard configuration a device would run export.md
hand a diagram to somebody who only has draw.io, and take it back drawio.md
hand over as-built documentation: a page per site and per device commands/report.md
look up a command's flags commands/
see how an inventory maps onto RFC 8343, RFC 8344 and 802.1Q yang-mapping.md
work on netviz itself architecture.md, ../CONTRIBUTING.md
know whether upgrading will break your inventory releasing.md, ../CHANGELOG.md
understand how netviz is tested testing.md

The pages, by kind

Guides — read once, front to back

Reference — look things up

For contributors

How the documentation is kept honest

Documentation this size only stays correct if something fails when it stops being correct. tests/test_docs.py asserts that:

So an example in these pages is not an illustration of what netviz used to do. It is either a test, or it says why it is not.