Enterprise-grade network protection through intelligent DNS filtering, ad blocking, and threat intelligence.
- DNS Filtering: Block malware, phishing, and malicious domains
- Ad Blocking: Remove ads and trackers for faster browsing
- Threat Intelligence: Real-time threat feed integration
- Router Integration: Network-wide protection via DNS
- Family Protection: Safe browsing for all connected devices
- Performance Optimization: Fast response times with intelligent caching
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Internet │────│ GuardNet │────│ Protected │
│ Traffic │ │ DNS Filter │ │ Network │
│ │ │ (Go Service) │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
├── Threat Intelligence
├── Ad Blocking Lists
├── DNS Resolution
└── Analytics
│
▼
┌──────────────────┐
│ API Gateway │
│ (Node.js) │
└──────────────────┘
│
▼
┌──────────────────┐
│ Dashboard │
│ (React) │
└──────────────────┘
- dns-filter/: Go-based DNS filtering service with threat intelligence
- threat-updater/: Automated threat feed collection and processing
- api-gateway/: Node.js API server for management and analytics
- dashboard/: React-based control panel and monitoring
- Go 1.21+
- Node.js 18+
- Docker & Docker Compose
- kubectl (for K8s deployment)
# Start all services
docker-compose up -d
# Check service status
docker-compose ps
# View logs
docker-compose logs -f dns-filter
# Stop services
docker-compose down# Run comprehensive e2e tests
cd e2e
python scripts/run_all_tests.py --report-html reports/html/
# Test DNS functionality
nslookup google.com 127.0.0.1 # Should resolve
nslookup doubleclick.net 127.0.0.1 # Should be blocked
# Run network simulation
python scripts/run_all_tests.py --simulation-duration 30guardnet/
├── services/
│ ├── dns-filter/ # Go DNS filtering service
│ │ ├── cmd/ # Application entrypoints
│ │ │ └── threat-updater/ # Threat intelligence updater
│ │ ├── internal/ # Private application code
│ │ │ ├── config/ # Configuration management
│ │ │ ├── db/ # Database operations
│ │ │ └── feeds/ # Threat feed processing
│ │ └── pkg/ # Public library code
│ ├── api-gateway/ # Node.js API service
│ └── dashboard/ # React frontend
├── e2e/ # End-to-end testing suite
│ ├── scripts/ # Test runners and utilities
│ ├── tests/ # Test categories
│ │ ├── dns_filtering/ # Core DNS functionality tests
│ │ ├── ad_blocking/ # Ad blocking tests
│ │ ├── threat_intel/ # Threat intelligence tests
│ │ ├── router_deployment/# Router integration tests
│ │ ├── network_simulation/# Multi-device scenarios
│ │ └── performance/ # Load and performance tests
│ └── utils/ # Testing utilities
├── infrastructure/
│ ├── docker/ # Docker configurations
│ └── kubernetes/ # K8s manifests
├── router-config/ # Router configuration templates
├── docs/ # Documentation
└── scripts/ # Build and deployment scripts
Each service has its own configuration:
- DNS Filter:
services/dns-filter/configs/ - API Gateway:
services/api-gateway/config/ - Dashboard:
services/dashboard/.env
Recent test results from e2e testing suite:
- 158 DNS queries processed across 6 devices
- 35.4% block rate (56 ads/threats blocked)
- 96.8% success rate with 13ms average response time
- 140 MB bandwidth saved and 28 seconds faster loading
- 86 DNS queries processed across 3 devices
- 40.7% block rate (35 ads/threats blocked)
- 100% success rate with 12.6ms average response time
- 87.5 MB bandwidth saved and 17.5 seconds faster loading
- Health checks:
/healthendpoint on each service - Threat intelligence: Real-time feed updates every 5 minutes
- DNS resolution: Sub-15ms response times with caching
- Logs: Structured JSON logging with threat detection details
docker-compose upkubectl apply -f infrastructure/kubernetes/API documentation available at: docs/api/
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open pull request
[License TBD]