Files
dnstest/backend/main.go
robertas_stauskas a70f3262e0 Initial commit: DNS Test - DNS health checking tool
Go backend (miekg/dns) + Nuxt 3 frontend (Tailwind CSS v4).

8 check categories, 52 checks total:
- Overview: @ record, WWW, MX with ASN/provider lookup
- Domain Registration: expiry, registrar (RDAP + whois fallback)
- Parent Delegation: NS records, glue, consistency
- Nameservers: 17 checks (reachability, auth, recursion, TCP/UDP, AXFR, etc.)
- SOA: serial consistency, timing values
- Mail (MX): 11 checks (CNAME, PTR, public IPs, consistency)
- Mail Auth: SPF, DKIM, DMARC
- WWW: A record, CNAME

Features:
- SSE streaming (results appear as each category completes)
- SQLite history (modernc.org/sqlite)
- Rate limiting, CORS, request logging
- Dark mode, responsive design
2026-03-20 13:39:57 +02:00

36 lines
705 B
Go

package main
import (
"log"
"net/http"
"os"
"github.com/intodns/backend/internal/api"
"github.com/intodns/backend/internal/checker"
"github.com/intodns/backend/internal/store"
)
func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
dbPath := os.Getenv("DNSTEST_DB")
if dbPath == "" {
dbPath = "/opt/dnstest/data/history.db"
}
st, err := store.NewStore(dbPath)
if err != nil {
log.Fatalf("Failed to open store: %v", err)
}
defer st.Close()
ch := checker.NewChecker()
router := api.NewRouter(ch, st)
addr := ":8080"
log.Printf("Starting DNS health checker on %s", addr)
if err := http.ListenAndServe(addr, router); err != nil {
log.Fatalf("Server failed: %v", err)
}
}