NetBox Oxidized Plugin
A NetBox plugin that displays Oxidized device configuration backups directly in Device detail pages.
Features
- Oxidized Tab - Adds an "Oxidized" tab to Device detail pages
- Config Display - Shows the latest device configuration as code with copy button
- Node Status - Displays backup status, model, and last backup time
- Link to Oxidized - Direct link to the device's version history in Oxidized
- Device Filtering - Configurable by device role and manufacturer slugs
- HTMX Loading - Async content loading without blocking the page
- Caching - API responses cached to reduce load on Oxidized
- Dashboard Widget - Backup status summary showing node freshness counts
Screenshots
Dashboard Widget
Backup status widget showing fresh, stale, critical, and never-backed-up node counts.
Requirements
- NetBox 4.0 or higher
- Python 3.10+
- Oxidized with REST API enabled
Installation
From PyPI (recommended)
pip install netbox-oxidized
Docker Installation
Add to your NetBox Docker requirements file:
# requirements-extra.txt
netbox-oxidized
Configuration
Add the plugin to your NetBox configuration:
# configuration.py or plugins.py
PLUGINS = [
'netbox_oxidized',
]
PLUGINS_CONFIG = {
'netbox_oxidized': {
# Required: Oxidized REST API URL
'oxidized_url': 'http://oxidized:8888',
# Optional: External URL for browser links (if behind reverse proxy)
'oxidized_external_url': 'https://oxidized.example.com',
# API timeout in seconds
'timeout': 30,
# Cache duration in seconds
'cache_timeout': 300,
# SSL certificate verification
'verify_ssl': False,
# Device role slugs to show tab for (empty = all)
'device_roles': ['voice-gateway'],
# Manufacturer slugs to show tab for (empty = all)
'manufacturers': ['cisco'],
}
}
See the Configuration wiki for full details.
Usage
Once installed and configured:
- Navigate to any Device in NetBox that matches your filter criteria
- Click the Oxidized tab
- View the node status and latest configuration
- Use the Copy button to copy the config
- Click Open in Oxidized to view version history
Using NetBox as Oxidized's Device Source
Want Oxidized to pull its device inventory from NetBox automatically? See the examples/netbox-source directory for a ready-to-use Docker sidecar that queries the NetBox API and serves devices to Oxidized via HTTP source.
Documentation
Full documentation is available on the Wiki:
Development
Setup
git clone https://github.com/sieteunoseis/netbox-oxidized.git
cd netbox-oxidized
pip install -e ".[dev]"
Code Style
black netbox_oxidized/
isort netbox_oxidized/
flake8 netbox_oxidized/
Changelog
See CHANGELOG.md for release history.
Support
If you find this plugin helpful, consider supporting development:
License
Apache License 2.0 - See LICENSE for details.
Author
sieteunoseis
Release files for netbox-oxidized 0.3.3
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_oxidized-0.3.3.tar.gz | 21.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_oxidized-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.6 kB
Release files / netbox_oxidized-0.3.3.tar.gz
| Download URL | netbox_oxidized-0.3.3.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f810d1de273ffe932f7351befbe8f4670ddd46365b23c1cafcbe31b3eac643f8
|
|
BLAKE2b-256 checksum How to use checksums |
d180984eca62844d5e47cf469f1216c3aed6673a571b09f0c49c2248a756e416
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / netbox_oxidized-0.3.3-py3-none-any.whl
| Download URL | netbox_oxidized-0.3.3-py3-none-any.whl |
|---|---|
| Size | 26.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
256887bc3accc5e42f5ebaa562e45c00d418946678537d9faf9ad2926c153b16
|
|
BLAKE2b-256 checksum How to use checksums |
4d08bc1b98e83eab3c4a3ecbaca828f514665a76d325b4d57020d2655b5df9d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|