Skip to content
 
 

Repository files navigation

NetBox Floorplan Plugin

Tests

This NetBox plugin provides floorplan mapping for sites and locations. Racks and unracked devices are drawn on a canvas, positioned to match the physical room, and clicked through to the objects they represent.

  • Graphical placement of racks and unracked devices on a floorplan
  • Metadata such as labels, areas, walls, and colouring
  • A floorplan is assigned to a site or a location, with click-through to racks and devices
  • Keyboard controls
  • Export to SVG
  • A background image per floorplan, uploaded or linked

See the compatibility matrix for supported NetBox versions, and the changelog for release notes.

Tip

This plugin is compatible with netbox-branching out of the box. See Branching for three behaviours worth knowing before drawing floorplans inside branches.

Important

For racks to display at their true proportions, assign a rack type to the rack and set the outer width and depth on that type. Racks without those dimensions are drawn at a default size.

Demo

demo

Advanced rack rendering, showing role colouring, status, and tenant:

advanced racks

Installation

Brief installation instructions are provided below. For a complete installation guide, please refer to the included documentation.

  1. Install the plugin from PyPI:
$ pip install netbox-floorplan-plugin
  1. Add netbox_floorplan to PLUGINS in configuration.py:
PLUGINS = [
    # ...
    'netbox_floorplan',
]
  1. Run the migrations and collect static files (paths may vary with your runtime environment):
$ cd /opt/netbox
$ sudo ./venv/bin/python3 netbox/manage.py migrate
$ sudo ./venv/bin/python3 netbox/manage.py collectstatic
  1. Add netbox-floorplan-plugin to local_requirements.txt so the plugin survives future upgrades, then restart NetBox:
$ sudo systemctl restart netbox netbox-rq

Documentation

Contributing

Issues and pull requests are welcomed. See CONTRIBUTING.md for the development environment and test workflow.

This repository follows the same two-branch model as NetBox itself:

  • feature — active development of future releases. Base your pull requests on this branch.
  • main — the released code. Releases are cut from here; feature is merged into main to release.

GitHub defaults the base branch to main, so remember to switch the base to feature when opening a pull request.

Mentions

Originally forked from tbotnz/netbox_floorplan.

Special thanks to the Ziply Fiber network automation team for helping to conceive this during the NANOG hackathon.

About

NetBox Floorplan plugin

Topics

Resources

Contributing

Security policy

Stars

125 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages