This guide seeks to demonstrate the process of developing a custom plugin for NetBox v3.2 or later. By following each of the prescribed steps, the reader will create from scratch a simple plugin for managing access lists in NetBox, utilizing all major components of the NetBox plugin framework.
A completed copy of the demo plugin created in this tutorial is available in the netbox-plugin-demo
repository for reference. For your convenience, the completed code corresponding to each step in the tutorial exists as a named branch in the demo repo. For example, if you want to start fresh on step 5, simply check out the step04-forms
branch.
Before attempting to create a plugin, please assess your personal ability. Plugin authors should have reasonable proficiency in the following:
- Python programming
- The Django framework
- REST API fundamentals (where applicable)
- Installing, configuring, and using NetBox
- Step 1: Initial Setup ⬅️ Start here!
- Step 2: Models
- Step 3: Tables
- Step 4: Forms
- Step 5: Views
- Step 6: Templates
- Step 7: Navigation
- Step 8: Filter Sets
- Step 9: REST API
- Step 10: GraphQL API
If you run into any snags working through the tutorial, please join us in the #netbox channel on the NetDev Community Slack for help.
If you happen to uncover an error or discrepancy in the tutorial, please be sure to open an issue so that it can be documented and fixed.