NetBox plugin for oxidized integration
Project description
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
Project details
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_oxidized-0.3.3.tar.gz.
File metadata
- Download URL: netbox_oxidized-0.3.3.tar.gz
- Upload date:
- Size: 21.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 |
f810d1de273ffe932f7351befbe8f4670ddd46365b23c1cafcbe31b3eac643f8
|
|
| MD5 |
c5d91b93eeb6f0b36e6b7586138d6905
|
|
| BLAKE2b-256 |
d180984eca62844d5e47cf469f1216c3aed6673a571b09f0c49c2248a756e416
|
File details
Details for the file netbox_oxidized-0.3.3-py3-none-any.whl.
File metadata
- Download URL: netbox_oxidized-0.3.3-py3-none-any.whl
- Upload date:
- Size: 26.1 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 |
256887bc3accc5e42f5ebaa562e45c00d418946678537d9faf9ad2926c153b16
|
|
| MD5 |
8dea21339cdb0c663c747f2763cff070
|
|
| BLAKE2b-256 |
4d08bc1b98e83eab3c4a3ecbaca828f514665a76d325b4d57020d2655b5df9d0
|