Skip to content

SimoGgl/NetDoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetDoc

🇬🇧 English | 🇮🇹 Italiano

Latest Release License: GPL v3 Platform


English

NetDoc is a desktop application for Windows and Linux that simplifies the creation of technical documentation for network devices (routers, switches, firewalls).

Network technicians waste hours manually documenting device after device in Word or Excel. NetDoc centralises everything in a single interface and generates professional documents in one click — ready for the archive and for the installer on site.

NetDoc main interface

Enter hostname, model, firmware, VLAN interfaces, VLANs and interfaces for each device, then export everything in one click in the formats you prefer.

Export dialog PDF output

Features

  • Manage multiple devices in the same session
  • Sections for VLAN Interfaces (number, description, IP, subnet, prefix, gateway, installer flag), VLANs and Interfaces (optic type, multiple VLANs, neighbor)
  • Export to archive PDF (full document), installer PDF (compact version with only field-needed data), Word (DOCX), TXT, CSV
  • Real-time validation of IP addresses, subnets and gateways
  • Incremental search in dropdowns (models, subnets, optic type)
  • Automatic session persistence: data is saved and restored on reopen
  • Protection against CSV formula injection (OWASP)

Download

Download the latest version from the Releases page.

  • Windows: run NetDoc.exe — no installation required
  • Linux: run NetDoc — you may need to make it executable with chmod +x NetDoc

Note for Windows

On first launch, Windows may show a security warning. This is normal for applications not signed with a digital certificate.

To run the program:

  1. Click More info
  2. Click Run anyway

Running from source

Requirements: Python 3.12+

With uv:

uv venv
uv pip install -r requirements.txt
.venv/Scripts/python netdoc.py   # Windows
.venv/bin/python netdoc.py       # Linux

With standard pip:

python -m venv .venv
.venv/Scripts/pip install -r requirements.txt   # Windows
.venv/bin/pip install -r requirements.txt       # Linux
python netdoc.py

Building the executable

uv pip install pyinstaller
pyinstaller NetDoc.spec

The resulting dist/NetDoc.exe is standalone and does not require Python to be installed.

Project structure

netdoc.py              — PyQt6 entry point
requirements.txt
app/
├── constants.py       — shared constants (PREFISSO_NETMASK, TIPI_OTTICA)
├── validation.py      — IP, subnet and gateway validation
├── version.py         — application version
├── model/
│   ├── dispositivo.py — Dispositivo, VlanInterface, VLAN, Interfaccia dataclasses
│   └── session.py     — JSON session persistence (with SCHEMA_VERSION migrations)
├── export/
│   ├── _helpers.py    — shared PDF styles and utilities
│   ├── pdf.py         — archive and installer PDF export
│   ├── docx.py        — Word export
│   ├── txt.py         — plain text export
│   └── csv_writer.py  — CSV export (formula injection protection)
└── ui/
    ├── main_window.py — main window, splitter, device navigation
    ├── widgets.py     — reusable SearchableComboBox
    └── sections/
        ├── generali.py        — hostname, model, firmware
        ├── vlan_interface.py  — VLAN Interface rows with color validation
        ├── vlan.py            — VLAN rows
        ├── interfacce.py      — interface rows with multiple VLAN list
        ├── note.py            — free text area
        └── export.py          — export dialog

License

GPL v3 — see LICENSE


Italiano

NetDoc è un'applicazione desktop per Windows e Linux che semplifica la creazione della documentazione tecnica di dispositivi di rete (router, switch, firewall).

I tecnici di rete perdono ore a documentare manualmente dispositivo per dispositivo su Word o Excel. NetDoc centralizza tutto in un'unica interfaccia e genera documenti professionali in un clic — pronti per l'archivio e per l'installatore sul campo.

Interfaccia principale NetDoc

Inserisci hostname, modello, firmware, VLAN interface, VLAN e interfacce per ogni dispositivo, poi esporta tutto in un clic nei formati che preferisci.

Dialog di esportazione Output PDF

Funzionalità

  • Gestione di più dispositivi nella stessa sessione
  • Sezioni per VLAN Interface (numero, descrizione, IP, subnet, prefisso, gateway, flag installatore), VLAN e Interfacce (tipo ottica, VLAN multiple, neighbor)
  • Esportazione in PDF archivio (documento completo), PDF installatore (versione sintetica con solo i dati necessari sul campo), Word (DOCX), TXT, CSV
  • Validazione indirizzi IP, subnet e gateway in tempo reale
  • Ricerca incrementale nelle tendine (modelli, subnet, tipo ottica)
  • Persistenza sessione automatica: i dati vengono salvati e ripristinati alla riapertura
  • Protezione da CSV formula injection (OWASP)

Download

Scarica l'ultima versione dalla pagina Releases.

  • Windows: esegui NetDoc.exe — non è richiesta nessuna installazione
  • Linux: esegui NetDoc — potrebbe essere necessario rendere il file eseguibile con chmod +x NetDoc

Nota per Windows

Al primo avvio Windows potrebbe mostrare un avviso di sicurezza. È normale per applicazioni non firmate con certificato digitale.

Per avviare il programma:

  1. Clicca su Ulteriori informazioni
  2. Clicca su Esegui comunque

Esecuzione da sorgente

Requisiti: Python 3.12+

Con uv:

uv venv
uv pip install -r requirements.txt
.venv/Scripts/python netdoc.py   # Windows
.venv/bin/python netdoc.py       # Linux

Con pip standard:

python -m venv .venv
.venv/Scripts/pip install -r requirements.txt   # Windows
.venv/bin/pip install -r requirements.txt       # Linux
python netdoc.py

Build dell'eseguibile

uv pip install pyinstaller
pyinstaller NetDoc.spec

Il file dist/NetDoc.exe è autonomo e non richiede Python installato.

Struttura del progetto

netdoc.py              — entry point PyQt6
requirements.txt
app/
├── constants.py       — costanti condivise (PREFISSO_NETMASK, TIPI_OTTICA)
├── validation.py      — validazione IP, subnet e gateway
├── version.py         — versione applicazione
├── model/
│   ├── dispositivo.py — dataclass Dispositivo, VlanInterface, VLAN, Interfaccia
│   └── session.py     — persistenza sessione JSON (con migrazioni SCHEMA_VERSION)
├── export/
│   ├── _helpers.py    — stili PDF e utilità condivise tra i formati
│   ├── pdf.py         — esportazione PDF archivio e installatore
│   ├── docx.py        — esportazione Word
│   ├── txt.py         — esportazione testo
│   └── csv_writer.py  — esportazione CSV (protezione formula injection)
└── ui/
    ├── main_window.py — finestra principale, splitter, navigazione dispositivi
    ├── widgets.py     — SearchableComboBox riutilizzabile
    └── sections/
        ├── generali.py        — hostname, modello, firmware
        ├── vlan_interface.py  — righe VLAN Interface con validazione colore
        ├── vlan.py            — righe VLAN
        ├── interfacce.py      — righe interfacce con lista VLAN multipla
        ├── note.py            — area testo libero
        └── export.py          — dialogo di esportazione

Licenza

GPL v3 — vedi LICENSE

About

Desktop tool for documenting network devices (routers, switches, firewalls) — exports to PDF, DOCX, CSV, TXT

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages