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
Release files for netbox-services 0.0.12
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.12.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_services-0.0.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.4 kB
Release files / netbox_services-0.0.12.tar.gz
| Download URL | netbox_services-0.0.12.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fd014472fbca0aa8d0094153c8de6a18586344f1e3982c6293577ebc59020780
|
|
BLAKE2b-256 checksum How to use checksums |
1748c123678c6b506821053fd6fb0e8312ae7e72381c2788ec148135a12eeffb
|
| 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.12-py3-none-any.whl
| Download URL | netbox_services-0.0.12-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2718eb62246f638075150ace7d6d54aacc1e91e1ea2253e70cb9e85872acf1a
|
|
BLAKE2b-256 checksum How to use checksums |
ba15f6eb60d79db21018f6a9d596a8b2df37a9b74f334348e0b11beaa7d6c584
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|