Skip to content

Installation

Prerequisites

  • NetBox 4.5.3 or later
  • PostgreSQL 16+ with PostGIS 3.4 extension
  • GDAL, GEOS, and PROJ system libraries
  • Python 3.12+

1. Install PostGIS

Enable the Extension

Connect to your NetBox database and enable PostGIS:

CREATE EXTENSION IF NOT EXISTS postgis;

Configure the Database Backend

In your NetBox configuration.py, set the database engine to the PostGIS backend:

DATABASE = {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'NAME': 'netbox',
    'USER': 'netbox',
    'PASSWORD': 'your-password',
    'HOST': 'localhost',
    'PORT': '',
}

Warning

The standard django.db.backends.postgresql engine will not work. You must use the PostGIS backend for geographic field support.

Install System Libraries

sudo apt-get install -y gdal-bin libgdal-dev libgeos-dev libproj-dev
sudo dnf install -y gdal gdal-devel geos geos-devel proj proj-devel

2. Install the Plugin

From PyPI

pip install netbox-pathways

From Source

git clone https://github.com/jsenecal/netbox-pathways.git
cd netbox-pathways
pip install -e .

3. Configure NetBox

Add the plugin to your configuration.py:

PLUGINS = ['netbox_pathways']

PLUGINS_CONFIG = {
    'netbox_pathways': {
        'map_center_lat': 45.5,    # Default map center latitude
        'map_center_lon': -73.5,   # Default map center longitude
        'map_zoom': 13,            # Default map zoom level
    }
}

4. Run Migrations

cd /opt/netbox
python manage.py migrate netbox_pathways

5. Collect Static Files

python manage.py collectstatic --no-input

6. Restart NetBox

sudo systemctl restart netbox netbox-rq

Verify Installation

  1. Log into the NetBox web interface
  2. Navigate to Plugins > Pathways
  3. You should see the Pathways navigation menu with Structures, Pathways, Conduit Banks, and other model sections
  4. Navigate to Plugins > Pathways > Map to verify the interactive map loads

Tip

If the map does not load, check your browser console for JavaScript errors and verify that static files were collected successfully.