[ ~/netbox-proxbox ]tty0

   ___              _
  | _ \_ _ _____ __| |__  _____ __
  |  _/ '_/ _ \ \ / '_ \/ _ \ \ /
  |_| |_| \___/_\_\_.__/\___/_\_\
   n e t b o x  ⇄  p r o x m o x

emerson@netdevops:~/netbox-proxbox$ ./describe.sh netbox-proxbox

NetBox plugin that synchronizes Proxmox infrastructure into NetBox via a FastAPI backend.

netbox-proxbox keeps your DCIM in sync with real Proxmox clusters by streaming clusters, nodes, VMs, containers, storage, snapshots and backups straight into NetBox.

It pairs a NetBox plugin (Django) with a dedicated FastAPI service called proxbox-api that does the heavy lifting and pushes progress live over Server-Sent Events.

license=Apache-2.0netbox=4.6.xpython=3.12+proxmox=7.x / 8.xrelease=v0.0.14

overview

emerson@netdevops:~/netbox-proxbox$ cat OVERVIEW.md

netbox-proxbox keeps your DCIM in sync with real Proxmox clusters by streaming clusters, nodes, VMs, containers, storage, snapshots and backups straight into NetBox.

It pairs a NetBox plugin (Django) with a dedicated FastAPI service called proxbox-api that does the heavy lifting and pushes progress live over Server-Sent Events.

stack

  • · NetBox plugin (Django / Python 3.12+)
  • · proxbox-api (FastAPI backend)
  • · Server-Sent Events for streaming
  • · MkDocs Material for docs

features

emerson@netdevops:~/netbox-proxbox$ ./features --list

  • ├─Automatic sync: clusters, nodes, VMs, containers, storage, snapshots, backups
  • ├─Real-time progress via Server-Sent Events (SSE) streaming
  • ├─Granular per-VM and per-endpoint sync flags
  • ├─Live backend log viewer pulled from proxbox-api
  • ├─Endpoint configuration via CSV / JSON / YAML import & export
  • ├─Read-only discovery — never mutates resources on Proxmox
  • ├─Network interface and IP assignment tracking inside NetBox

install

emerson@netdevops:~/netbox-proxbox$ ./install --help

# quick install (PyPI):

install
emerson@netdevops:~$ pip install netbox-proxbox

# Plus the proxbox-api backend (Docker image or standalone). See docs.

$ path B — netbox-docker

  1. 01. Add the plugin to plugin_requirements.txt

    On netbox-community/netbox-docker, plugin requirements live alongside the compose file.

    shell
    echo 'netbox-proxbox' >> plugin_requirements.txt
  2. 02. Enable the plugin in configuration/plugins.py

    Mirrors the venv flow but inside the docker config directory.

    configuration/plugins.py
    PLUGINS = [
        "netbox_proxbox",
    ]
  3. 03. Rebuild and start NetBox

    The build pulls the plugin from PyPI into the image; up -d boots NetBox + workers.

    shell
    docker compose build --no-cache netbox
    docker compose up -d
  4. 04. Run migrations inside the container

    Same `manage.py migrate` as venv install, but routed through the running container.

    shell
    docker compose exec netbox /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py migrate netbox_proxbox
  5. 05. Verify

    Browse to NetBox → Plugins → Proxbox. If the page renders, you are ready to add endpoints.

$ path C — proxbox-api backend (required)

  1. 01. Pull the proxbox-api Docker image

    The backend is the FastAPI service that actually talks to Proxmox and pushes streaming progress to the plugin.

    shell
    docker pull emersonfelipesp/proxbox-api:latest
  2. 02. Run the backend on port 8800

    Map host 8800 → container 8000. The plugin will reach this URL via the FastAPI endpoint object you create next.

    shell
    docker run -d \
      --name proxbox-api \
      -p 8800:8000 \
      --restart unless-stopped \
      emersonfelipesp/proxbox-api:latest
  3. 03. Verify health

    A 200 OK from /health means the backend is up. Need TLS or a non-Docker install? See the upstream backend docs.

    shell
    curl -sf http://localhost:8800/health && echo OK

configure

emerson@netdevops:~/netbox-proxbox$ ./configure --endpoints

# Configuration is UI-driven — three NetBox endpoint objects + a singleton plugin-settings record.

$ endpoints — wire Proxmox, NetBox, and the FastAPI backend

  1. 01. Create the Proxmox API endpoint

    In NetBox, go to Plugins → Proxbox → Proxmox Endpoints → Add.

    Fill in the Proxmox host or VIP, port (usually 8006), and either user/password or an API token. Toggle TLS verification according to your environment.

  2. 02. Create the NetBox API endpoint

    Plugins → Proxbox → NetBox Endpoints → Add.

    Point this at the same NetBox you are configuring (yes, NetBox calls itself), with port 443 and a NetBox API token that has write permissions on DCIM/Virtualization.

  3. 03. Create the ProxBox API (FastAPI) endpoint

    Plugins → Proxbox → FastAPI Endpoints → Add.

    Hostname or IP of the proxbox-api service, port 8800 (or whatever you mapped). This is the bridge that performs the actual sync and streams progress back over SSE.

  4. 04. Run a Full Update

    From Plugins → Proxbox home page, click "Full Update". The page streams live SSE progress as clusters, nodes, VMs, containers, storage, snapshots and backups appear in NetBox.

$ plugin settings & sync overwrite flags

  1. 01. Tune plugin settings

    Plugins → Proxbox → Plugin Settings exposes a singleton settings object.

    Useful knobs: guest-agent interface naming, Proxmox fetch concurrency, IPv6 link-local filtering, NetBox concurrency + retry policy, bulk-batch sizing, VM sync parallelism.

  2. 02. Configure SSRF protection

    Same settings page. Enable / disable SSRF protection, allow specific private IPs or CIDRs. Keep the default unless you intentionally point endpoints at link-local or private addresses.

  3. 03. Set sync overwrite flags

    Every `overwrite_*` flag is configurable globally on plugin settings or per-endpoint on the Settings tab of each Proxmox endpoint.

    Per-endpoint flags use a tri-state: Use plugin default / Always overwrite / Never overwrite. This lets you treat one cluster as authoritative while merging from another.

screenshots

emerson@netdevops:~/netbox-proxbox$ ls screenshots/overview

# Plugin home & dashboard

  • Plugin home — endpoint status cards and quick-sync actions.
    home.png
  • Operational dashboard — cluster and node summaries at a glance.
    dashboard.png

repo

emerson@netdevops:~/netbox-proxbox$ repo:stats

$ gh repo view emersonfelipesp/netbox-proxbox --json
stars
539
forks
63
lang
Python
release
v0.0.14

static · from public/github-data

emerson@netdevops:~/netbox-proxbox$ links