Skip to main content

QR Code generation for netbox objects

Project description

Netbox QR Code Plugin

Netbox plugin for generate QR codes for objects: Rack, Device, Cable.

This plugin depends on qrcode and Pillow python library

Downloads Downloads Downloads

Compatibility

Plugin Version NetBox Version Tested on
0.0.11 3.7.x 3.7.x
0.0.14 4.0.x v4.0.11
0.0.15 4.1.x v4.1.6

Installation

If Netbox was installed according to the standard installation instructions. It may be necessary to activate the virtual environment.

source /opt/netbox/venv/bin/activate

The plugin is available as a Python package in pypi and can be installed with pip

pip install netbox-qrcode

Enable the plugin in /opt/netbox/netbox/netbox/configuration.py:

PLUGINS = ['netbox_qrcode']

Restart NetBox and add netbox-qrcode to your local_requirements.txt

Configuration

The following options are available:

  • with_text: Boolean (default True). Text label will be added to QR code image if enabled.

  • text_template: Jinja2 template with {{ obj }} as context for device, rack, etc., using it ignores text_fields and custom_text.

    Example to output name and site in two lines with caption (See also screenshots below):

    'text_template': 'Name: {{ obj.name }}\nSite: {{ obj.site }}',
    
  • text_fields: List of String (default ['name']). Text fields of an object that will be added as text label to QR image. It's possible to use custom field values.

  • font: String (default TahomaBold) Font name for text label ( Some font include in package, see fonts dir).

  • text_location: Where to render the text, relative to the QR code. Valid values are "right" (default), "left"", "up", and "down".

  • custom_text: String or None (default None) additional text label to QR code image (will be added after text_fields).

  • qr_version: Integer (default 1) parameter is an integer from 1 to 40 that controls the size of the QR Code (the smallest, version 1, is a 21x21 matrix).

  • qr_error_correction: Integer (default 0), controls the error correction used for the QR Code. The following values are available:

    1 - About 7% or less errors can be corrected. 0 - About 15% or less errors can be corrected. 2 - About 30% or less errors can be corrected. 3 - About 25% or less errors can be corrected.

  • qr_box_size: Integer (default 6), controls how many pixels each "box" of the QR code is.

  • qr_border: Integer (default 4), controls how many boxes thick the border should be (the default is 4, which is the minimum according to the specs).

Per object options

Per object options override default options. Per object options dictionary can contains any of default options inside.

  • device: Dict or None (default {'text_fields': ['name', 'serial']}), set None to disble QR code
  • rack: Dict or None (default {'text_fields': ['name']}) , set None to disble QR code
  • cable: Dict or None ( defaul {'text_fields': ['_termination_a_device', 'termination_a', '_termination_b_device', 'termination_b',]}), set None to disble QR code

Configuration example:

PLUGINS_CONFIG = {
    'netbox_qrcode': {
        'with_text': True,
        'text_fields': ['name', 'serial'],
        'font': 'ArialMT',
        'font_size': 12, # If the value is 0 or the line does not exist, then the text is automatically adjusted
        'custom_text': 'Property of SomeCompany\ntel.8.800333554-CALL',
        'text_location': 'up',
        'qr_version': 1,
        'qr_error_correction': 0,
        'qr_box_size': 4,
        'qr_border': 4,
        # per object options
        'cable': None,  # disable QR code for Cable object
        'rack': {
            'text_fields': [
                'site',
                'name',
                'facility_id',
                'tenant',
                'cf.cf_name'
            ]
        },
        'device': {
            'qr_box_size': 6,
            'custom_text': None,
        }
    }
}

Contributing

Developing tools for this project based on ntc-netbox-plugin-onboarding repo.

Issues and pull requests are welcomed.

Screenshots

Device QR code with text label Device QR Code

Rack QR code Rack QR Code

Cable QR code Cable QR Code

Device QR code via Jinja2 "text_template" Parameter (Multiline and labeled) Cable QR Code

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

netbox-qrcode-0.0.15.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

netbox_qrcode-0.0.15-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file netbox-qrcode-0.0.15.tar.gz.

File metadata

  • Download URL: netbox-qrcode-0.0.15.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for netbox-qrcode-0.0.15.tar.gz
Algorithm Hash digest
SHA256 b787c6ba2d8ac0344eb9d5eadc281373048368489fd7b349f10ee227c89b45fe
MD5 4e903d266b9a70d32a795031faea48d6
BLAKE2b-256 f4f508290448c07d0824bb9aef36ed75a711f8c889563e647f60ec6b80e0fd4c

See more details on using hashes here.

File details

Details for the file netbox_qrcode-0.0.15-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_qrcode-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 edf7bfe0e5510f4ef2c4fdf29a0961f9fe2d1fe2295298e72ba4ccf93016a2bb
MD5 3c928149c9e02566eb622d4a30ec162b
BLAKE2b-256 57ca2f15b17173d48640b6d97588d6fbfd3b560c237ed8d2bf60f42460dbf78e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page