Netmiko As A Service - REST API wrapper for network device automation
NAAS provides a production-ready REST API for Netmiko, enabling network automation through HTTP instead of SSH. Run commands on network devices, manage configurations, and integrate with existing tools—all through a simple API.
# Start with Docker Compose
git clone https://github.com/lykinsbd/naas.git
cd naas
docker compose up -d
# Send a command
curl -k -X POST https://localhost:8443/v2/send-command \
-u "username:password" \
-H "Content-Type: application/json" \
-d '{"host": "192.168.1.1", "platform": "cisco_ios", "commands": ["show version"]}'📖 Full documentation | 🚀 Installation guide | 📚 API reference
⚠️ Deprecation notice —/v1/and unversioned data-plane routesThe
/v1/*routes and legacy unversioned aliases (/send_command,/send_config) are deprecated and will be removed in NAAS v3.0 (sunset date: 2027-01-01). All new integrations should use/v2/routes with hyphenated paths (/v2/send-commandetc.). See the migration guide for details.The unversioned
/healthcheckendpoint is not deprecated — it remains as a permanent operational endpoint for k8s probes, DockerHEALTHCHECK, and similar infrastructure tooling.
- Centralized access - Single API endpoint for all network devices, simplifying security and compliance
- HTTPS everywhere - Proxy SSH/Telnet through HTTPS without complex tunneling
- Asynchronous execution - Non-blocking job queue handles long-running commands
- Multi-platform - Supports 100+ device types via Netmiko
- Production-ready - 100% test coverage, Docker deployment, horizontal scaling
- 🔐 API key authentication (JWT) - Token-based access with role-based access control (admin/operator/viewer)
- 🎯 Context authorization - Scope API keys to specific routing contexts
- 🔒 Credential encryption at rest - Device credentials encrypted in Redis
- 📡 SSE job streaming - Server-sent events for real-time job updates
- 🪝 Webhook HMAC + retry - Signed payloads with exponential-backoff redelivery
- 📊 OpenTelemetry tracing - Distributed tracing for production observability
- 🤖 MCP server - AI-assistant integration via Model Context Protocol
- ✨ TextFSM structured output, platform autodetect, connection pooling
- 📊 Prometheus metrics at
/metrics - 🛑 Job cancellation and replay
- 📝 Structured audit logging
- ✅ RESTful API with async job processing
- 🔒 HTTPS with TLS
- 🐳 Docker Compose and Kubernetes deployment
- 📊 Redis-backed job queue (RQ)
- 🚀 Horizontal scaling support
- 🔌 All Netmiko platforms supported
- 🔐 Circuit breaker pattern for failing devices
- 🎯 100% test coverage
- Installation - Docker Compose and Kubernetes
- API Usage - Examples and guides
- API Reference - Interactive Swagger docs
- Contributing - Development setup
- Changelog - Release notes
Contributions welcome! See the Contributing Guide for development setup, workflow, and guidelines.
- Documentation - Guides and API reference
- Issues - Bug reports and feature requests
- Discussions - Questions and community support
MIT License - see LICENSE file for details
Built with Netmiko by Kirk Byers