Skip to content

NetBox — 專案總覽

分析版本

本文件基於 commit 09f7df07 進行分析。

專案資訊

項目說明
專案名稱NetBox
Repositorynetbox-community/netbox
語言/框架Python 3.12+ / Django 5.2.12
API 框架Django REST Framework 3.16.1 + Strawberry GraphQL
資料庫PostgreSQL (必要)
快取/佇列Redis (必要) — django-redis + RQ
版本v4.5.7
授權Apache License 2.0
專案類型Web 應用平台

簡介

NetBox 是由 DigitalOcean 開源的網路基礎設施管理平台,提供 IPAM(IP Address Management)與 DCIM(Data Center Infrastructure Management)等核心功能。它是網路工程師與資料中心維運團隊的 Source of Truth,管理 IP 位址、機櫃、設備、線路、虛擬機等所有網路基礎設施資訊。

核心能力

  • 115 個資料模型 橫跨 12 個 Django 應用模組
  • 131 個 REST API Endpoints + GraphQL API
  • 完整 Plugin 系統 支援第三方擴充
  • Object-Level RBAC 細粒度權限控制
  • Webhook + Event Rules 事件驅動整合
  • 多認證後端 LDAP / OAuth2 / SAML / SSO

文件目錄

文件說明
系統架構Django 應用結構、部署架構、Plugin 系統、Middleware Pipeline
核心功能分析IPAM、DCIM、Custom Fields、Change Logging、Search、Cable Path 演算法
資料模型分析115 個 Model 總覽、ERD 關係圖、核心模型深度分析、Mixin 模式
API 參考與分析REST API 131 Endpoints、Serializer 模式、Filter 系統、GraphQL
外部整合與擴充認證後端、Webhooks、Event Rules、RQ 背景任務、Plugin API

與現有 KubeVirt 生態系專案的比較

特性KubeVirt 生態系NetBox
語言GoPython
框架controller-runtime / operator-sdkDjango / DRF
資料儲存Kubernetes etcd (CRD)PostgreSQL (ORM)
API 風格Kubernetes API (declarative)REST + GraphQL (CRUD)
擴充機制CRD + OperatorPlugin System (AppConfig)
部署方式Pod in K8sGunicorn + Nginx + Systemd
背景任務Controller reconcile loopRQ (Redis Queue)

基於 Apache 2.0 授權