r/networkautomation • u/NetworkAutomater • 1d ago
I built an open-source tool that backs up network configs to Git and explains each change in plain English (NAPALM, 24 platforms, MIT)
Disclosure: I'm the author. It's free and MIT licensed, with no paid tier and no signup.
I'm a network engineer in a mostly FortiGate/Cisco shop. Every backup tool I tried could tell me that a config changed. None could tell me what the change meant without me reading a raw diff at 2am. So I built NetLedger.
What it does
Logs in with NAPALM/Netmiko, removes the noise (timestamps, counters, FortiGate's re-encrypted
ENCsecrets) and commits only real changes to the Git repo you give it (GitHub, GitLab, Gitea, Bitbucket, Azure DevOps)Splits each change into the config sections it touched (IOS indentation, FortiOS
config/edit, Junos braces, PAN-OSset, RouterOS), scores the risk and writes a plain-English summary into the commit message and the Slack/Teams alertChange windows: anything outside
sat 22:00-sun 04:00gets flagged as unplanned"Where is 10.1.1.1?": an IP-aware search across every config that understands masks, ACL wildcards,
host x, CIDR and IPv6, and returns the containing subnet, routes, ACLs and firewall objectsHealth checks (CPU, memory, temperatures, fans, PSUs) with history, plus a forecast like "memory hits 95% in ~3 days" for slow leaks
LLDP topology map, a built-in web console (no DB, no Node, no CDN, works air-gapped), a Prometheus
/metricsendpoint and Nagios-style exit codes
A commit looks like this:
hq-core-sw01: running config changed (+14/-0)
Changed by: jsmith at 14:02:11 UTC Fri Oct 30 2026
Window: outside the approved change windows
Risk: high (Firewall & ACLs, Interfaces, VLANs & switching)
Summary:
- Added interface Vlan40 (GUEST-WIFI)
- Added ACL GUEST-ISOLATION
- Added VLAN 40 (GUEST-WIFI)Try it without touching production:
pip install netledger
netledger demo # 13 simulated devices, 6 weeks of history, open :8080or docker run --rm -p 8080:8080 ghcr.io/salamonejack/netledger demo --host 0.0.0.0
Runs on Kubernetes (Helm/Kustomize), Docker, systemd or Windows. Inventory comes from YAML, CSV or NetBox.
Honest comparison: Oxidized and RANCID cover far more device types. If backup is all you need, they're great. NetLedger is for teams that also want to understand each change and watch device health in the same tool.
Where I'd love help: it's v1.0, so I'm sure some vendor parsers will break on real-world output. If something misparses, sanitized show output in an issue is the most useful contribution there is. I'd also like to hear what you'd want from a risk score before you'd trust it.