Create topology views/maps from your devices in NetBox.
The connections are based on the cables you created in NetBox.
Support to filter on name, site, tag and device role.
Options to export to xml (for draw.io/diagrams.net) or png.
NOTE: For docker please see: Docker install
NOTE: Add RUN mkdir -p /opt/netbox/netbox/static/netbox_topology_views/img
to the Dockerfile-Plugins file to create the image folder
The plugin is available as a Python package and can be installed with pip.
Run pip install netbox-topology-views
in your virtual env.
To ensure NetBox Topology Views plugin is automatically re-installed during future upgrades, create a file named local_requirements.txt
(if not already existing) in the NetBox root directory (alongside requirements.txt
) and list the netbox-topology-views
package:
# echo netbox-topology-views >> local_requirements.txt
Once installed, the plugin needs to be enabled in your configuration.py
# In your configuration.py
PLUGINS = ["netbox_topology_views"]
First run source /opt/netbox/venv/bin/activate
to enter the Python virtual environment.
Then run
cd /opt/netbox/netbox
pip3 install netbox-topology-views
python3 manage.py migrate netbox_topology_views
python3 manage.py collectstatic --no-input
netbox version | netbox-topology-views version |
---|---|
>= 4.0.0 | >= v4.0.0 |
>= 3.7.0 | >= v3.9.0 |
>= 3.6.4 | >= v3.8.1 |
>= 3.6.0 | >= v3.7.X |
>= 3.5.0 | >= v3.4.X |
>= 3.4.0 | >= v3.X.X |
>= 3.3.0 | >= v3.0.0 |
>= 3.2.0 | >= v1.1.0 |
>= 3.1.8 | >= v1.0.0 |
>= 2.11.1 | >= v0.5.3 |
>= 2.10.0 | >= v0.5.0 |
< 2.10.0 | =< v0.4.10 |
Run pip install netbox-topology-views --upgrade
in your venv.
Run python3 manage.py migrate netbox_topology_views
Run python3 manage.py collectstatic --no-input
Clear you browser cache.
All individual options can be assigned a default value per user directly in the plugin. The default value can be overridden on the filter page.
The remaining options must be configured in the PLUGINS_CONFIG
section of your netbox/configuration.py
.
Example:
PLUGINS_CONFIG = {
'netbox_topology_views': {
'static_image_directory': 'netbox_topology_views/img',
'allow_coordinates_saving': True,
'always_save_coordinates': True
}
}
Setting | Default value | Description |
---|---|---|
static_image_directory | netbox_topology_views/img | (str or pathlib.Path) Specifies the location that images will be loaded from by default. Must be within STATIC_ROOT |
allow_coordinates_saving | False | (bool) Set to true if you want to enable the ability to save the coordinates. |
always_save_coordinates | False | (bool) Set if you want to enable the option to save coordinates by default. Setting allow_coordinates_saving to true is mandatory. |
There is also support for custom fields.
Note: The custom field "coordinates" is deprecated and will be removed in the future. Please use Coordinate Groups instead.
If you create a custom field "coordinates" for "dcim > device" and "Circuits > circuit" with type "text" and name "coordinates" you will see the same layout every time. It is recommended to set this field to "UI visibility" "Hidden" and let the plugin manage it in the background.
The coordinates are stored as: "X;Y".
Please read the "Configure" chapter to set the
allow_coordinates_saving
option to True. You might also set thealways_save_coordinates
option to True.
Please note that values stored in the custom field "coordinates" are not being converted to Coordinate Groups automatically. A pragmatic way to do this conversion yourself is as follows:
Hint: Don't wait too long after clicking an icon in order to drag. If you hold the mouse button for too long before dragging starts, the selection is reset._
To change image with associated device use the Images
page - it allows to map a device role with an image found in the NetBox static directory (defined by the plugin config static_image_directory
which defaults to netbox_topology_views/img
). You can also upload you own custom images to there - these images will automatically be used for a device (if it does not already have a specified image in the settings) if their name is the device role slug.
Go to the plugins tab in the navbar and click topology or go to $NETBOX_URL/plugins/netbox_topology_views/
to view your topologies
Select your options for the topology view:
Netbox Topology Views stores the position of the devices. In order to allow different representations for the topology, Coordinate Groups are supported.
Please read the "Configure" chapter to set the
allow_coordinates_saving
option to True. You might also set thealways_save_coordinates
option to True.
Navigate to "Coordinate Groups" in the menu and create as many groups as you like. You can select a group later in the filter pane in order to show icon positions according to this group (see chapter "Use"). You can also omit creating a group if you don't need this feature. Netbox Topology Views automatically creates a group named "default" for you and stores all coordinates in this group, even if you do not select a group in the filter.
By default, the position of the devices are calculated with a physics engine. As soon as a device icon is dragged to another location, its position is saved and excluded from the calculation by the physics engine. All saved coordinates can be viewed and edited under the menu item "Coordinates".
Note: At the time of writing, it is not possible to store the positions of circuit terminations, power panels and power feeds, as these are not devices.
To view /plugins/netbox_topology-views/topology
you need the following permissions:
To save Coordinates
when moving icons:
To view /plugins/netbox_topology-views/images
:
To view /plugins/netbox_topology-views/individualoptions
:
Set Coordinate Groups
according to your needs:
Set Coordinates
according to your needs:
Set Power Feed Coordinates
according to your needs:
Set Power Panel Coordinates
according to your needs:
Set Circuit Coordinates
according to your needs: