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.15
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.15.tar.gz | 13.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_services-0.0.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.1 kB
Release files / netbox_services-0.0.15.tar.gz
| Download URL | netbox_services-0.0.15.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5655cf5bee01209e2360fa48134e5ccefd57c49629a1e9f647b0a75a9d31bb5c
|
|
BLAKE2b-256 checksum How to use checksums |
5fbce9b90b8332c8c3a407cb443e3a4546e9b6683cef15a01e55e16760fc13c7
|
| 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.15-py3-none-any.whl
| Download URL | netbox_services-0.0.15-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
517da2195ecca4c361826f6b8d17d65bb0551725533e0b9c12627d491f952ecc
|
|
BLAKE2b-256 checksum How to use checksums |
3cf97f456b41ad1a3efd61436ecf6da5fce6dca6657cd7aaaa9c5b4a529a7bd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|