Skip to main content

NetBox Oxidized Plugin

A NetBox plugin that displays Oxidized device configuration backups directly in Device detail pages.

NetBox Version Python Version License PyPI

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.

Dashboard Widget

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:

  1. Navigate to any Device in NetBox that matches your filter criteria
  2. Click the Oxidized tab
  3. View the node status and latest configuration
  4. Use the Copy button to copy the config
  5. 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:

Buy Me A Coffee

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)

Source distribution for netbox-oxidized 0.3.3
File Size Uploaded
netbox_oxidized-0.3.3.tar.gz 21.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netbox-oxidized 0.3.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.3 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page