NetBox Services Plugin
A NetBox plugin for service providers who need a service-centric inventory on top of DCIM/IPAM.
NetBox already models devices, prefixes, circuits, and VRFs. What it does not model natively is the commercial / operational service that those objects deliver — the Cogent DIA circuit NW-123456, the customer L3VPN, the IP transit handoff.
This plugin adds a Service object: a unique service ID, a type, a tenant, a lifecycle, and many-to-many links to the NetBox objects that implement it. Tags are still useful for loose labels; a Service is the object you open when someone asks “what does this customer product actually run on?”
What a Service is
Each Service has:
| Area | Fields |
|---|---|
| Identity | Unique service_id, type (L2VPN, L3VPN, DIA, IP Transit, CDN, Voice), description, status, tenant |
| Lifecycle | Order date, planned activation, installed, contract start/end, requested disconnect, decommissioned |
| Delivery | Devices, interfaces, cables, VLANs, prefixes, VRFs, ASNs, route targets, L2VPNs, tunnels, VMs |
| Files | PDF/other files (ServiceAttachment) plus NetBox image attachments (photos) on the Images tab |
Status reuses NetBox circuit statuses so services line up with how circuits are already tracked.
Date checks: contract end cannot precede start; decommissioned cannot precede installed or requested disconnect.
Why not just tags?
Tagging a prefix dia does not tell you which customer product it belongs to, when it was ordered, or which handoff interface delivers it.
With a Service you can, for example, create DIA NW-123456 for a tenant and then:
- Point at the PE/CE devices and the exact interfaces
- Attach the WAN prefixes, VRF, and ASN
- Record order / install / contract dates
- Store the signed PDF and site photos next to the inventory
The detail page is split for that workflow: technical inventory on the left, lifecycle and attachments on the right.
Features
- CRUD for business services from Business Services in the nav
- Relate/unrelate DCIM, IPAM, VPN, and virtualization objects from the service detail view
- Filter and search by service ID, description, tenant, status, and dates
- Bulk delete from the list view
- Changelog, tags, and custom fields (
NetBoxModel) - REST API under
/api/plugins/services/(list/detail includeidand lifecycle fields) - File attachments and native image attachments
Usage
- Open Business Services in the plugin menu.
- Create a service (ID + type at minimum).
- On the detail page, use Assign on each technical card to attach inventory.
- Fill lifecycle dates when the order, install, or disconnect happens.
- Add contracts/PDFs under Attachments; photos go on the Images tab.
Requirements
- NetBox 4.4+
- Python 3.10+
Installation
Install the package:
pip install netbox-services
Or clone this repo next to your NetBox plugins and install in editable mode.
Enable it in configuration.py:
PLUGINS = [
'netbox_services',
]
Apply migrations and restart NetBox:
python manage.py migrate netbox_services
The UI lives at /plugins/services/. The API lives at /api/plugins/services/ (no extra /services/ segment).
License
MIT
Metadata
Release files for netbox-services 0.0.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| netbox_services-0.0.13.tar.gz | 13.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_services-0.0.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.5 kB
Release files / netbox_services-0.0.13.tar.gz
| Download URL | netbox_services-0.0.13.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b6a38cd1edad9cf0f799f0d58dbf245dc195854d8f16ac2a8c883a015e61c76d
|
|
BLAKE2b-256 checksum How to use checksums |
0b82dfbe9bb284ac12e905909eb7262ddfcb932bc2401a5c0bec9bcbdc1efa24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / netbox_services-0.0.13-py3-none-any.whl
| Download URL | netbox_services-0.0.13-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af643ef0cdf39f68a21354955c08e7e7dbb4e37c801afd39e3ec1d5755e3655c
|
|
BLAKE2b-256 checksum How to use checksums |
f85acf125738af3e2ec16280b1577aa88eb0d9e720c687e4ed8cf1234c75f1e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|