The Diode server is a required component of the Diode ingestion service.
Diode is a NetBox ingestion service that greatly simplifies and enhances the process to add and update network data in NetBox, ensuring your network source of truth is always accurate and can be trusted to power your network automation pipelines.
More information about Diode can be found at https://netboxlabs.com/blog/introducing-diode-streamlining-data-ingestion-in-netbox/.
Diode server is composed of two services:
- Responsible for receiving and validating ingestion data.
- Utilizes
IngesterService.Ingest
RPC method. - Supports single API key for data source authorization.
- Validates incoming data and pushes it into Redis streams.
- Processes data from Redis streams and converts it for storage.
- Manages data sources and their API keys.
- Implements a reconciliation engine to detect and store deltas between ingested data and the current NetBox object state.
The Diode server has been tested with NetBox versions 3.7.2 and above. The Diode server also requires the Diode NetBox Plugin.
Diode server requires Docker version 27.0.3 or above.
Diode requires a configuration file and an environment file to execute successfully:
docker-compose.yaml
- to configure and run the Diode server containers.env
- to store the specific environmental settings
We recommend placing both files in a clean directory:
mkdir /opt/diode
cd /opt/diode
Download the default docker-compose.yaml
and .env
files from this repository:
curl -o docker-compose.yaml https://raw.githubusercontent.com/netboxlabs/diode/release/diode-server/docker/docker-compose.yaml
curl -o .env https://raw.githubusercontent.com/netboxlabs/diode/release/diode-server/docker/sample.env
Edit the .env
to match your environment:
NETBOX_DIODE_PLUGIN_API_BASE_URL
: URL for the Diode NetBox plugin APIDIODE_TO_NETBOX_API_KEY
: API key generated with the Diode NetBox plugin installationDIODE_API_KEY
: API key generated with the Diode NetBox plugin installationNETBOX_TO_DIODE_API_KEY
: API key generated with the Diode NetBox plugin installationINGESTER_TO_RECONCILER_API_KEY
: API key to authorize RPC calls between the Ingester and Reconciler services (at least 40 characters, example generation with shell command:openssl rand -base64 40 | head -c 40
)MIGRATION_ENABLED
: Set tofalse
to disable the migration, default:true
RECONCILER_RATE_LIMITER_RPS
: Rate limit for the reconciler service for generating and applying change sets concurrently, default:20
RECONCILER_RATE_LIMITER_BURST
: Burst limit for the reconciler service for generating and applying change sets concurrently, default:1
Start the Diode server:
docker compose -f docker-compose.yaml up -d
Distributed under the PolyForm Shield License 1.0.0 License. See LICENSE.md for more information.