mirror of
https://github.com/DevVoxel/VectorDNS.git
synced 2026-02-27 05:47:38 +00:00
3.3 KiB
3.3 KiB
VectorDNS Architecture
Overview
VectorDNS uses a hybrid architecture: a Next.js frontend on Vercel and a Go DNS microservice on a VPS.
┌──────────────────────┐ ┌──────────────────────┐
│ Vercel (Frontend) │ │ VPS (DNS API) │
│ │ │ │
│ Next.js 16 │ HTTP │ Go microservice │
│ React 19 │◄──────►│ miekg/dns │
│ Supabase SDK │ │ │
│ Tailwind + shadcn │ │ - DNS resolution │
│ │ │ - DNSSEC validation │
│ Handles: │ │ - Propagation checks │
│ - UI/SSR │ │ - Monitoring cron │
│ - Auth (Supabase) │ │ - Change detection │
│ - WHOIS lookups │ │ │
│ - Static pages │ └───────────┬───────────┘
│ │ │
└──────────┬───────────┘ │ UDP/TCP
│ ▼
│ ┌───────────────────────┐
│ │ DNS Resolvers / │
▼ │ Authoritative NS │
┌──────────────────────┐ └───────────────────────┘
│ Supabase │
│ │
│ - Postgres DB │
│ - Auth │
│ - Row Level Security│
└──────────────────────┘
Why Hybrid
| Concern | Solution |
|---|---|
| Frontend hosting, SSR, auth | Vercel (serverless, zero-ops) |
| DNS resolution, monitoring | Go on VPS (persistent process, no cold starts) |
| Database, auth state | Supabase (managed Postgres) |
What Each Service Handles
Next.js (Vercel)
- All UI rendering (SSR + client)
- Authentication via Supabase
- WHOIS lookups (whoiser library)
- Domain availability checks (IANA RDAP)
- Dashboard, notifications, settings pages
- Proxies DNS queries to the Go service
Go Microservice (VPS)
- DNS record lookups via
miekg/dns(UDP/TCP, not DoH) - Query specific or authoritative nameservers directly
- DNSSEC validation
- DNS propagation checking across multiple resolvers
- Scheduled monitoring (native cron, no serverless time limits)
- Change detection (diff DNS snapshots, notify on changes)
Communication
The Next.js API routes call the Go service over HTTPS. The Go service URL is configured via environment variable (GO_DNS_API_URL). Requests are authenticated with a shared API key (GO_DNS_API_KEY).
Next.js API route → HTTPS → Go DNS API → UDP/TCP → DNS resolvers
Why Go Over DoH (Tangerine)
- Direct UDP/TCP DNS queries — faster, no middleman
- Can query authoritative nameservers directly
- Supports DNSSEC validation, AXFR, propagation checks
- No cold starts, consistent latency
- No Vercel function timeout limits for monitoring jobs