Skip to content

BondIT-ApS/dnssec-validator

DNSSEC Validator

GitHub Workflow Status License GitHub repo size Made in Denmark codecov

Docker Pulls GitHub Release

🧱 Building DNS Security Solutions, One Brick at a Time πŸ”’

A professional-grade web-based DNSSEC validation tool that validates the complete chain of trust from root servers down to your domain. Similar to Verisign's DNSSEC Debugger but with modern architecture, Docker support, and comprehensive monitoring.

🧱 Foundation Pieces (Features)

  • βœ… Complete Chain of Trust - Validates from root (.) β†’ TLD β†’ domain
  • βœ… Visual Web Interface - Clean UI with color-coded validation status
  • βœ… RESTful API - Programmatic access for automation
  • βœ… Docker Ready - Easy deployment with official Docker images
  • βœ… Smart Input - Accepts domains or URLs with automatic parsing
  • βœ… Health Monitoring - Built-in health checks for orchestration
  • βœ… Rate Limiting - Configurable limits for production use
  • βœ… Analytics - Optional InfluxDB integration for request logging
  • βœ… Google Analytics - Optional GA4 tracking with GDPR-compliant cookie consent

🌐 Live Demo

Try it now: https://dnssec-validator.bondit.dk

πŸš€ Quick Assembly (Quick Start)

# Run with Docker
docker run -p 8080:8080 maboni82/dnssec-validator:latest

# Open browser
open http://localhost:8080

That's it! The validator is now running.

πŸ“– Basic Usage

Web Interface

  1. Navigate to http://localhost:8080
  2. Enter a domain (e.g., bondit.dk)
  3. Click "Validate DNSSEC"
  4. View detailed validation results

API

# Validate a domain
curl http://localhost:8080/api/validate/bondit.dk

# Response includes chain of trust and DNSSEC records

πŸ“¦ Assembly Instructions (Installation)

Docker (Recommended)

# Pull and run latest version
docker pull maboni82/dnssec-validator:latest
docker run -d -p 8080:8080 --name dnssec-validator maboni82/dnssec-validator:latest

Docker Compose

# Clone repository
git clone https://github.com/BondIT-ApS/dnssec-validator.git
cd dnssec-validator

# Start with compose
docker-compose up -d

Manual Installation

# Requires Python 3.13+
git clone https://github.com/BondIT-ApS/dnssec-validator.git
cd dnssec-validator
pip install -r requirements.txt
python app/app.py

πŸ“š See Installation Guide for detailed options

πŸ”§ Configuration

Configuration is managed via environment variables in the .env file:

# 1. Copy the template
cp .env.template .env

# 2. Edit .env with your values
nano .env

Key Configuration Options:

# Flask Environment
FLASK_ENV=development  # or production

# Rate Limiting
RATE_LIMIT_GLOBAL_DAY=5000
RATE_LIMIT_API_MINUTE=200

# Health Checks
HEALTH_CHECK_ENABLED=true

# InfluxDB Analytics (optional)
REQUEST_LOGGING_ENABLED=true
INFLUX_URL=http://influxdb:8086

# Google Analytics (optional, disabled by default)
GA_ENABLED=false
GA_TRACKING_ID=G-XXXXXXXXXX

See .env.template for all available configuration options and detailed documentation.

Google Analytics Configuration

Optional Google Analytics 4 tracking with GDPR-compliant cookie consent:

# Enable Google Analytics
GA_ENABLED=true
GA_TRACKING_ID=G-XXXXXXXXXX  # Your GA4 tracking ID

Features:

  • βœ… GDPR-compliant cookie consent banner
  • βœ… Only loads GA after user accepts tracking
  • βœ… User can decline tracking
  • βœ… Consent preference saved in local storage
  • βœ… Privacy-first approach with IP anonymization
  • βœ… Disabled by default
  • βœ… Automatically logs error if enabled without tracking ID

Note: GA is disabled by default. The application will log an error if GA_ENABLED=true but GA_TRACKING_ID is missing.

πŸ“š See Configuration Reference for all options

πŸ“š Documentation

Comprehensive documentation is available in the documentation/ folder:

Getting Started

Deployment & Operations

Development & Technical

πŸ—οΈ Building Design (Architecture)

DNSSEC Validator validates the complete chain of trust:

Root (.) β†’ TLD (.dk) β†’ Domain (bondit.dk)
   ↓         ↓              ↓
DNSKEY β†’ DS Record β†’ DNSKEY + RRSIG

Each step is cryptographically verified using DNSSEC signatures.

πŸ“š See Architecture Guide for details

🐳 Production Deployment

Docker Compose

# 1. Configure environment
cp .env.template .env
nano .env  # Update with production values

# 2. Deploy with compose
docker-compose up -d

Container Orchestration

For advanced deployments with Docker Swarm, Kubernetes, or Portainer, see the Container Orchestration Guide which includes:

  • Docker Swarm stack configurations
  • Kubernetes deployment manifests
  • Portainer templates
  • Health check integration
  • Load balancer configurations

Health Checks

All deployments include health check endpoints:

  • /health - Detailed JSON status
  • /health/simple - Simple text response

πŸ“š See Container Orchestration Guide for complete examples

🀝 Join the Building Team (Contributing)

We welcome contributions! To contribute:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and add tests
  4. Run quality checks: black, pylint, pytest
  5. Submit a pull request

See CONTRIBUTING.md and Development Guide for details.

🏷️ Versioning

DNSSEC Validator uses semantic versioning with YY.M.PATCH format:

  • 26.1.0 - January 2026, first release
  • 26.1.3 - January 2026, patch 3
  • 26.2.0 - February 2026, first release

Docker tags:

  • latest - Most recent release
  • 26.1.0 - First stable release for January 2026
  • 26.1 - Latest patch for January 2026
  • 26.1.3 - Specific version

View all releases on the Releases page.

πŸ“‹ Building Blueprints (Roadmap)

⚠️ Security

  • Domain requests are logged for analytics (configurable retention)
  • Only IP addresses and domains are stored
  • Rate limiting prevents abuse
  • Regular security scans with Bandit and Safety CLI
  • Weekly CodeQL analysis

Report security issues via GitHub Security Advisories.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™‹β€β™‚οΈ Support

🏒 About BondIT ApS

This project is maintained by BondIT ApS, a Danish IT consultancy. Like our fellow Danish company LEGO, we believe in building things methodically - except our bricks are lines of code, and you won't step on them barefoot at 3 AM! πŸ§±πŸ’»


Made with ❀️, β˜•, and 🧱 by BondIT ApS

About

A web-based DNSSEC validation tool that provides comprehensive analysis of DNS Security Extensions for any domain

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors