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.
Advanced rack rendering, showing role colouring, status, and tenant:
Brief installation instructions are provided below. For a complete installation guide, please refer to the included documentation.
- Install the plugin from PyPI:
$ pip install netbox-floorplan-plugin
- Add
netbox_floorplantoPLUGINSinconfiguration.py:
PLUGINS = [
# ...
'netbox_floorplan',
]- 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
- Add
netbox-floorplan-plugintolocal_requirements.txtso the plugin survives future upgrades, then restart NetBox:
$ sudo systemctl restart netbox netbox-rq
- Introduction — what the plugin does and how a floorplan is put together
- Installation — full installation guide
- Drawing a Floorplan — the canvas editor, keyboard controls, and export
- Branching — using floorplans with netbox-branching
- Data Model — Floorplan and Floorplan Image
- REST API
- Change Log
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;featureis merged intomainto release.
GitHub defaults the base branch to main, so remember to switch the base to feature when opening a pull request.
Originally forked from tbotnz/netbox_floorplan.
Special thanks to the Ziply Fiber network automation team for helping to conceive this during the NANOG hackathon.

