Open Source
CoreDNS Manager
Enterprise-grade DNS resolver management for CoreDNS and Unbound.
Unified CLI, API, and Web interfaces for production DNS operations.
Multi-Resolver Support
Unified management for CoreDNS and Unbound with a consistent interface across both resolvers.
Migration Engine
Bidirectional migration between CoreDNS and Unbound with validation and rollback support.
Kubernetes Native
First-class K8s support with pod testing, ConfigMap management, and Helm charts.
Powerful CLI
Full-featured dnsctl command with service control, cache ops, queries, and comparisons.
REST API
FastAPI-powered REST API for programmatic access and integration with your infrastructure.
MCP Integration
Model Context Protocol server for AI/LLM integration with DNS operations.
Installation
Quick Install (Recommended)
One-line install via curl:
curl -fsSL https://raw.githubusercontent.com/straticus1/dnsscience-coredns-manager/main/install.sh | bash
Via pip
pip install git+https://github.com/straticus1/dnsscience-coredns-manager.git
From Source
git clone https://github.com/straticus1/dnsscience-coredns-manager.git
cd dnsscience-coredns-manager
pip install -e .
Docker
docker pull ghcr.io/straticus1/dnsscience-coredns-manager:latest
docker run -it ghcr.io/straticus1/dnsscience-coredns-manager dnsctl --help
Kubernetes (Helm)
helm repo add dnsscience https://charts.dnsscience.io
helm install dnsscience dnsscience/coredns-manager --namespace dns-system --create-namespace
CLI Reference
| Command | Description |
|---|---|
dnsctl service |
Service control (status, start, stop, restart, reload) |
dnsctl cache |
Cache operations (stats, flush, purge, inspect) |
dnsctl query |
DNS queries (lookup, trace, bench, bulk) |
dnsctl config |
Configuration management (validate, diff, show, reload) |
dnsctl compare |
Resolver comparison (run, shadow, report) |
dnsctl migrate |
Migration operations (plan, execute, validate, rollback) |
dnsctl k8s |
Kubernetes operations (test-pod, configmap, discover) |
dnsctl health |
Health monitoring (check, watch, metrics) |
Quick Examples
Check resolver status
dnsctl service status
Trace DNS resolution
dnsctl query trace example.com
Compare resolvers
dnsctl compare run example.com \
--resolver1 coredns \
--resolver2 unbound
Plan a migration
dnsctl migrate plan \
--source coredns \
--target unbound
Flush cache
dnsctl cache flush --all
Start API server
dnsctl-api
# or
uvicorn dnsscience.api.main:app --host 0.0.0.0 --port 8000
Requirements
- Python 3.11+
- CoreDNS 1.11+ and/or Unbound 1.19+
- Kubernetes 1.28+ (for K8s features)
Documentation
Architecture
+---------------------------------------------------------------------+
| DNS Science CoreDNS Manager |
+--------+------------+-----------+----------+----------+------+------+
| CLI | REST API | MCP Server| n8n Nodes| Web UI |Admin |
| (Typer)| (FastAPI) | (MCP SDK)| (Custom)| (React) |(htmx)|
+---------------------------------------------------------------------+
| Core Business Logic |
+---------------------------------------------------------------------+
| +----------------+ +----------------+ |
| | CoreDNS Client | | Unbound Client | |
| | - Service Ctrl | | - Service Ctrl | |
| | - Cache Ops | | - Cache Ops | |
| | - Query Engine | | - Query Engine | |
| | - Config Parse | | - Config Parse | |
| +----------------+ +----------------+ |
| |
| +----------------+----------------+-----------------+ |
| | Compare Engine | Migration Eng. | K8s Integration| |
| | - Diff Algo | - Config Conv | - Pod Testing | |
| | - Shadow Mode | - Validation | - Discovery | |
| | - Scoring | - Rollback | - ConfigMaps | |
| +----------------+----------------+-----------------+ |
+----------------------------------------------------------------------+