NetDocIT is a Windows-first network discovery and documentation tool. It collects interface and route information, performs live host discovery, enriches data with host and SNMP details, and exports topology and inventory reports.
For contributors, maintainers, and users forking this repository:
- Python 3.14+
- Windows PowerShell (for discovery scripts)
For end users using the packaged installer:
- No Python setup required
Using uv:
uv syncUsing pip:
python -m pip install -e .Run full discovery and generate reports:
uv run netdocit scanRun report generation from stored data:
uv run netdocit reportGenerate topology from stored data:
uv run netdocit mapOpen interactive dashboard:
uv run netdocitREPORT.md: Markdown inventory reportinventory.html: Printable HTML inventory dashboardtopology.html: Interactive topology mapdata/netdocit.sqlite: Local scan database
Generated report/map artifacts are intended as runtime outputs and can be regenerated on demand.
- SNMP enrichment source of truth:
src/backend/snmp_engine.py(Pythonpysnmpimplementation)
- Commit source code, tests, templates, and configuration
- Do not rely on committed generated artifacts for operational state
- Regenerate
REPORT.md,inventory.html, andtopology.htmlfrom current scan data when needed
scan/discover: Run full discovery pipelinereport: Build report artifacts from database statemap: Build topology artifact from database statelogs: Show persisted scanner logsschedule --time HH:mm: Register daily scheduled scan task (Administrator required)
- Production mode expects SNMP communities from an external JSON file path set by
NETDOCIT_SECRETS_FILE. - Legacy
data/config.jsoncredentials remain available for backward-compatible development mode. - If legacy credentials are empty in development mode, NetDocIT falls back to built-in default guesses (
public,monitor,read-only). - When
NETDOCIT_ENV=productionand no external secrets file is configured, scans continue but credential loading failures are explicit in run metadata and logs.
Example external secrets file:
{
"credentials": {
"snmp": ["public", "monitor"]
},
"metadata": {
"rotation_due": "2026-06-01T00:00:00",
"expires_at": "2026-12-01T00:00:00"
}
}Usage:
$env:NETDOCIT_SECRETS_FILE = "C:\secrets\netdocit-secrets.json"
uv run netdocit scan --profile safepython -m unittest discover -v- The discovery pipeline is currently Windows-oriented because it depends on PowerShell scripts and Windows networking cmdlets.
- SNMP enrichment is handled in Python via
pysnmp.