Skip to content
/ nsot Public
forked from dropbox/nsot

Network Source of Truth - Fork of Dropbox's original NSoT that has been updated for Python 3 and Django 5.x

License

Notifications You must be signed in to change notification settings

jathanism/nsot

 
 

Repository files navigation

NSoT

Network Source of Truth

CI Documentation Status PyPI Status

Network Source of Truth (NSoT) is a source of truth database and repository for tracking inventory and metadata of network entities to ease management and automation of network infrastructure.

NSoT is an API-first application that provides a REST API for managing IP addresses (IPAM), network devices, and network interfaces.

NSoT was originally created at Dropbox and is now maintained by Jathan McCollum.

What's New in v2.0.0

  • Upgraded to Django 5.2 and Django REST Framework 3.16
  • Requires Python 3.10+ (dropped Python 2.7 / 3.x < 3.10)
  • Modern tooling: uv for dependency management, ruff for linting/formatting
  • CI/CD via GitHub Actions with python-semantic-release

Installation

pip install nsot

Or with uv:

uv add nsot

Quick Start

# Initialize the config (~/.nsot/nsot.conf.py)
nsot-server init

# Create a superuser
nsot-server createsuperuser --email admin@localhost

# Start the server on 8990/tcp
nsot-server start

Then browse the API at http://localhost:8990/api/ or the admin at http://localhost:8990/admin/.

Development

git clone https://github.com/jathanism/nsot.git
cd nsot
uv sync --all-extras

# Run tests
NSOT_API_VERSION=1.0 uv run pytest -vv tests/

# Lint / format
uv run ruff check nsot/ tests/
uv run ruff format nsot/ tests/

Resources

About

Network Source of Truth - Fork of Dropbox's original NSoT that has been updated for Python 3 and Django 5.x

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.8%
  • Other 0.2%