Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/netbox-community/netbox-plugin-tutorial
A tutorial on building custom plugins for NetBox v3.2+
https://github.com/netbox-community/netbox-plugin-tutorial
Last synced: about 1 month ago
JSON representation
A tutorial on building custom plugins for NetBox v3.2+
- Host: GitHub
- URL: https://github.com/netbox-community/netbox-plugin-tutorial
- Owner: netbox-community
- Created: 2022-03-16T18:36:27.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-10T17:59:02.000Z (3 months ago)
- Last Synced: 2024-09-10T20:07:55.840Z (3 months ago)
- Size: 543 KB
- Stars: 89
- Watchers: 11
- Forks: 47
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-netbox - NetBox Plugin Tutorial - NetBox Plugin Development Tutorial. (Resources / Educational)
README
# NetBox Plugin Development Tutorial
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`](https://github.com/netbox-community/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.
### Prerequisites
Before attempting to create a plugin, please assess your personal ability. Plugin authors should have reasonable proficiency in the following:
* Python programming
* The [Django](https://www.djangoproject.com/) framework
* REST API fundamentals (where applicable)
* Installing, configuring, and using NetBox### Contents
* [Step 1: Initial Setup](/tutorial/step01-initial-setup.md) :arrow_left: Start here!
* [Step 2: Models](/tutorial/step02-models.md)
* [Step 3: Tables](/tutorial/step03-tables.md)
* [Step 4: Forms](/tutorial/step04-forms.md)
* [Step 5: Views](/tutorial/step05-views.md)
* [Step 6: Templates](/tutorial/step06-templates.md)
* [Step 7: Navigation](/tutorial/step07-navigation.md)
* [Step 8: Filter Sets](/tutorial/step08-filter-sets.md)
* [Step 9: REST API](/tutorial/step09-rest-api.md)
* [Step 10: GraphQL API](/tutorial/step10-graphql-api.md)
* [Step 11: Search](/tutorial/step11-search.md)### Reference
* [NetBox Plugin Development Documentation](https://netbox.readthedocs.io/en/stable/plugins/development/)
* [NetBox Labs Certified Plugin Program](https://github.com/netbox-community/netbox/wiki/Plugin-Certification-Program)### Getting Help
If you run into any snags working through the tutorial, please join us in the **#netbox** channel on the [NetDev Community Slack](https://netdev.chat/) for help.
### Feedback and Issues
If you happen to uncover an error or discrepancy in the tutorial, please be sure to [open an issue](https://github.com/netbox-community/netbox-plugin-tutorial/issues/new/choose) so that it can be documented and fixed.