Manage and synchronize GNS3, NetBox, and YAML-driven network labs.
329
Last updated: 2026-08-30
GNS3 NetBox Manager is a lightweight web service for synchronizing lab data between GNS3 and NetBox. It is designed for practical network-lab workflows where users need to build, import, deploy, and update topologies without manually re-entering the same information in multiple systems.
The service sits between GNS3 and NetBox and connects to both platforms through their APIs. It does not bundle either platform, and it does not permanently store infrastructure credentials on the server.
This project provides a browser-based operational layer for three common workflow models:
In day-to-day use, the service helps with:
The application is intentionally small in scope. It packages only the integration service itself.
User Browser
|
| request-scoped settings
v
GNS3 NetBox Manager
| \
| \__ NetBox API
|
\____ GNS3 API
This repository builds a standalone application image for GNS3 NetBox Manager.
It does not include:
services:
gns3-netbox-manager:
image: <dockerhub-user>/gns3-netbox-manager:latest
container_name: gns3-netbox-manager
restart: unless-stopped
ports:
- "8088:8080"
volumes:
- ./data:/app/data
After the container starts, open:
http://<docker-host>:8088/settings
For a new environment, the recommended setup order is:
Initialize / Sync Integration.This initialization step is important because YAML validation, template-aware workflows, and several deployment features depend on the metadata created here.
The web interface is organized around operational tasks rather than platform internals.
The Settings page is where users provide GNS3 and NetBox connection details.
Supported behavior:
The server does not permanently store these credentials.
The System Integration page prepares NetBox for use with the service and keeps metadata aligned with live GNS3 templates.
It synchronizes:
This action is safe to run again after template changes or when moving to a different NetBox environment.
The GNS3 Projects area supports GNS3-first workflows.
Typical tasks include:
Typical flow:
GNS3 Projects.The NetBox GNS3 Labs area supports NetBox-first workflows.
Typical tasks include:
Typical flow:
NetBox GNS3 Labs.Update Config later if the NetBox-side configuration changes.The YAML Lab area supports automation-first workflows.
Typical tasks include:
Typical flow:
Use this when the source of truth starts in GNS3.
Use this when the source of truth starts in NetBox.
NetBox GNS3 Labs.Use this when the topology should be generated, templatized, or produced by automation.
The service uses a browser-first credential model.
For lab development, HTTP may be acceptable. For any shared, production, or customer-facing environment, HTTPS should be treated as mandatory.
The NetBox integration layer creates and maintains the metadata needed for reliable synchronization.
This includes:
For the standard naming used by the UI and project documentation, see
TERMINOLOGY.md.
The implementation also includes compatibility handling for NetBox environments that reject empty choice sets during initialization.
Some GNS3 nodes do not behave like normal routers, switches, or endpoint templates.
Current special handling includes:
These node types can still appear in supported workflows, but they are not forced through the same fixed-interface expectations as standard device templates. This reduces false failures during validation and synchronization.
For links connected to a GNS3 NAT node, YAML generation and configuration logic should not assume a fixed external subnet, gateway, or NAT-side address.
When the selected config driver supports it, DHCP should be preferred on the NAT-facing routed interface. Static addressing should be used only when the platform or lab requirement explicitly requires it.
If this application is deployed inside a Docker container that also lives inside a GNS3 topology, the container may not be able to reach the GNS3 VM or GNS3 API by default.
This is a connectivity design issue in the hosting topology, not an application defect.
Create a TAP interface on the GNS3 host and connect it into the topology through a Cloud node.
Run on the GNS3 host:
ip tuntap add dev tap-host mode tap
ip link set tap-host up
ip route replace <container-ip>/32 dev tap-host
Important notes:
/24 address to tap-host/32 host route for the service container IPThen:
tap-host.Example:
GNS3 host
|
tap-host
|
Cloud
|
Switch
|
Service container
For most users, deploying the service outside the GNS3 topology is still the simpler and more predictable option.
This project is designed for:
It is especially useful when teams want repeatable lab workflows without building a larger custom orchestration stack.
GNS3 NetBox Manager is intended to make GNS3 and NetBox work together in a practical, operator-friendly way. It focuses on deployable lab workflows, repeatable synchronization, YAML-driven automation, and a safer browser-based credential model while staying small enough to package and run as a standalone service.
Last updated: 2026-08-30
This document defines the standard product terminology used across the GNS3 NetBox Manager web UI, repository documentation, release notes, and future development work.
Its goal is to keep platform names, workflow names, object names, and action labels consistent.
GNS3 NetBox ManagerGNS3-NetBox, NetBox Manager, or other mixed variants in user-facing text unless space is severely limitedGNS3NetBoxUse these exact capitalizations in all user-facing text.
Use these exact names for the main UI areas:
GNS3 ProjectsNetBox GNS3 LabsYAML LabSystem IntegrationSettingsUse the platform-native object names when referring to actual records in each system:
ProjectNodeTemplateLocationDeviceDevice TypeInterfaceCableWhen describing a workflow area, use the UI-area name.
Examples:
Open GNS3 ProjectsOpen NetBox GNS3 LabsUse YAML LabWhen describing the underlying platform object, use the native object name.
Examples:
Import the GNS3 Project into NetBoxDeploy the NetBox Location to GNS3Update configuration from the NetBox LocationUse these exact labels for major actions:
Refresh ProjectsCheck All Project SyncCompare with NetBoxImport to NetBoxClose ProjectDelete GNS3 ProjectRefresh NetBox LabsPreviewDeploy to GNS3Update ConfigDelete NetBox LabValidate YAMLApply to NetBoxInitialize / Sync IntegrationView GNS3 TemplatesPreferred result phrases:
GNS3 Project Deployment SuccessfulNetBox Lab Deployment SuccessfulIntegration synchronization completed successfully.Preferred object references in messages:
GNS3 ProjectNetBox LocationNetBox LabUse NetBox Lab for workflow-level success or failure messaging.
Use NetBox Location when referring to the actual NetBox object.
Preferred documentation headings:
GNS3 Project Import to NetBoxNetBox Lab Deployment to GNS3GNS3 Project Configuration Pull to NetBoxDocker DeploymentDocker Hub DeploymentSystem IntegrationAvoid these inconsistent or informal variants:
NetboxlabnodeDelete NetBoxCompare NetBoxCheck All SyncInitialize NetBoxConnections when the intended page is System IntegrationIf a future feature introduces a new device family, workflow, or page, its user-facing name should be added to this file first, then applied consistently across:
Content type
Image
Digest
sha256:ddfd09ceb…
Size
53.6 MB
Last updated
18 days ago
docker pull hc023307c/gns3-netbox-manager