NetBox Plugin for viewing interfaces in a grid layout with VLAN color-coding
Project description
netbox-plugin-interface-view
NetBox Plugin for viewing device interfaces in a stylish grid layout that mimics the physical port arrangement.
Features
- Grid Visualization: Display device interfaces in a configurable grid layout (rows × columns)
- Visual Connection Status: Color-coded indicators show interface connection and enabled status
- VLAN Color-Coding: Interfaces are color-coded based on their VLAN assignments
- Border color represents the untagged VLAN
- Colored dots represent tagged VLANs
- Interface Filtering: Filter out specific interface types (e.g., Virtual, LAG, Loopback)
- Configurable Layout: Grid dimensions can be configured per device using custom fields
Installation
- Install the plugin:
pip install netbox-plugin-interface-view
- Add the plugin to your NetBox configuration (
configuration.py):
PLUGINS = [
'netbox_interface_view',
]
- Run database migrations:
cd /opt/netbox/netbox/
python3 manage.py migrate
- Restart NetBox services:
sudo systemctl restart netbox netbox-rq
Configuration
Custom Fields Setup
The plugin requires the following custom fields to be created in NetBox:
Device Custom Fields
-
grid_rows (Integer)
- Content Type:
dcim > device - Type: Integer
- Default: 2
- Description: Number of rows in the interface grid
- Content Type:
-
grid_columns (Integer)
- Content Type:
dcim > device - Type: Integer
- Default: 24
- Description: Number of columns in the interface grid
- Content Type:
VLAN Custom Fields
- color (Text)
- Content Type:
ipam > vlan - Type: Text
- Default: #cccccc
- Validation: Hex color code (e.g., #FF5733)
- Description: Color to use for VLAN visualization (hex color code)
- Content Type:
Creating Custom Fields via NetBox UI
- Navigate to Customization > Custom Fields
- Click Add to create a new custom field
- Fill in the details as specified above
- Save the custom field
Creating Custom Fields via API
You can also create custom fields programmatically using the NetBox API or Django shell.
Usage
- Navigate to a device detail page in NetBox
- Click the "View Interface Grid" button (appears in the device header)
- The grid visualization page will display:
- A configurable grid of interface cells
- Connection status indicators (green = connected, gray = disconnected, red = disabled)
- VLAN color coding (border = untagged VLAN, dots = tagged VLANs)
- Filter options to exclude specific interface types
Example Configuration
For a 48-port switch with ports arranged in 2 rows:
- Set
grid_rows= 2 - Set
grid_columns= 24
For a 24-port switch with ports arranged in 3 rows:
- Set
grid_rows= 3 - Set
grid_columns= 8
Legend
- Green dot (●): Interface is connected and enabled
- Gray dot (●): Interface is disconnected
- Red dot (●): Interface is disabled
- Border color: Represents the untagged VLAN color
- Small colored dots: Represent tagged VLANs
Requirements
- NetBox >= 3.5.0
- Python >= 3.8
License
This project is licensed under the Apache 2.0 License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netbox_interface_view-0.1.3.tar.gz.
File metadata
- Download URL: netbox_interface_view-0.1.3.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a27c3110652fa94de646ac9e5270f6661cfac82802f582878227bc56a4b082
|
|
| MD5 |
68606d21d2730a26d4221feb1d80a6d8
|
|
| BLAKE2b-256 |
d1d558f0135698ad16c27b99aaa8f643d88dd9ac34f647f30055cf40dc101ebc
|
Provenance
The following attestation bundles were made for netbox_interface_view-0.1.3.tar.gz:
Publisher:
publish-to-pypi.yml on Tolfx/netbox-plugin-interface-view
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbox_interface_view-0.1.3.tar.gz -
Subject digest:
41a27c3110652fa94de646ac9e5270f6661cfac82802f582878227bc56a4b082 - Sigstore transparency entry: 686171774
- Sigstore integration time:
-
Permalink:
Tolfx/netbox-plugin-interface-view@2b494326e1e7fefb2ff8a86ae9026682af0f4a96 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/Tolfx
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@2b494326e1e7fefb2ff8a86ae9026682af0f4a96 -
Trigger Event:
release
-
Statement type:
File details
Details for the file netbox_interface_view-0.1.3-py3-none-any.whl.
File metadata
- Download URL: netbox_interface_view-0.1.3-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d153190dd8ed857d2eeaf7150c27efbe2f98c9fc50f9c7363cf7654edfe42efe
|
|
| MD5 |
320642fc556382001fa10b086b3fb991
|
|
| BLAKE2b-256 |
f2be976cad3805b57aa639a97c554bdfae7782b26c45e2c47648d90e029dc006
|
Provenance
The following attestation bundles were made for netbox_interface_view-0.1.3-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on Tolfx/netbox-plugin-interface-view
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbox_interface_view-0.1.3-py3-none-any.whl -
Subject digest:
d153190dd8ed857d2eeaf7150c27efbe2f98c9fc50f9c7363cf7654edfe42efe - Sigstore transparency entry: 686171776
- Sigstore integration time:
-
Permalink:
Tolfx/netbox-plugin-interface-view@2b494326e1e7fefb2ff8a86ae9026682af0f4a96 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/Tolfx
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@2b494326e1e7fefb2ff8a86ae9026682af0f4a96 -
Trigger Event:
release
-
Statement type: