A production-ready network configuration backup system featuring a Web UI, CLI, concurrent backups, and a full observability stack.
netcfg-backup provides a user-friendly web interface to manage network devices, execute configuration backups on demand, browse backup history, and monitor system performance using Prometheus and Grafana.
The project also includes a powerful command-line interface for scripting and automation.
-
Web Interface
- Device inventory management (CRUD)
- Run backups on demand
- Browse historical backup files
-
Command-Line Interface
- Add, edit, list and remove devices
- Execute configuration backups
- Run remote commands
- Migrate legacy device inventories
-
Concurrent Worker Pool
- Parallel backup execution
- Efficient processing of multiple devices
-
Persistent Storage
- SQLite database
-
Built-in Monitoring
- Prometheus metrics
- Grafana dashboards
-
Multi-Protocol Support
- SSH
- Telnet
-
Docker Ready
- Complete monitoring stack with Docker Compose
Web UI / CLI
│
▼
Backup Service
│
Concurrent Worker Pool
│
SSH / Telnet Connectors
│
Network Devices
│
SQLite Storage
│
Prometheus Metrics
│
Grafana Dashboards
- Concurrent worker pool for parallel backups
- SSH and Telnet connectors
- Web UI and CLI interfaces
- SQLite persistence layer
- Prometheus metrics
- Grafana dashboards
- Dockerized deployment
- Device inventory management
- Backup history browser
- Configuration migration tool
Building Netcfg Backup helped me improve:
- Concurrent programming in Go
- Worker pool implementation
- SSH/Telnet automation
- Network device management
- Prometheus monitoring
- Grafana dashboards
- CLI application development
- HTTP server development
- Docker deployment
- Go 1.24+
- Docker & Docker Compose
- Git
git clone https://github.com/cobrich/netcfg-backup.git
cd netcfg-backupcp .env.example .envUpdate the .env file and configure your secrets (including SESSION_AUTH_KEY).
docker compose up --buildOpen the Web UI:
http://localhost:8080
| Page | Description |
|---|---|
/ |
Device management |
/backups |
Browse backup history |
| Run Backup | Execute backup for all configured devices |
| Service | URL |
|---|---|
| Prometheus | http://localhost:9091 |
| Grafana | http://localhost:3000 |
Default Grafana credentials:
admin / admin
Build:
go build -o netcfg-backup .Available commands:
netcfg-backup server
netcfg-backup run
netcfg-backup list
netcfg-backup add
netcfg-backup edit
netcfg-backup remove
netcfg-backup exec
netcfg-backup migrateFor more information:
netcfg-backup --help- Web UI
- CLI
- SSH support
- Telnet support
- SQLite storage
- Concurrent worker pool
- Prometheus metrics
- Grafana dashboards
- Docker support
- Automatic scheduled backups
- Email notifications
- Multi-user authentication
This project is licensed under the MIT License.
Bekzat Tursun
GitHub: https://github.com/cobrich