• v1.1.0 d96f25b1d6

    ExploreDNS v1.1.0
    Deploy / deploy (push) Successful in 2m26s
    CI / docker (push) Successful in 10m19s
    Release / docker (push) Successful in 1m32s
    Release / binaries (push) Successful in 2m55s
    CI / test (push) Successful in 10m4s
    Stable

    gary released this 2026-07-07 15:16:11 +00:00 | 4 commits to main since this release

    The web interface grows up: this release brings the dns.squish.net-style
    traversal detail tree and a geolocated server map to the browser, plus
    operational features for running ExploreDNS as a public service — rate
    limiting, optional usage reporting, and automated release engineering.

    Highlights

    Live traversal detail tree. The web UI now renders every query as it
    happens in a refid-numbered tree mirroring the original dns.squish.net
    detail view: status chips per node (referral / answered / error), glue
    resolution subtrees collapsed behind per-node "show resolve" toggles,
    italic -- completed earlier markers for fast-mode reuse, and a raw
    event log behind a toggle for debugging.

    Server map. After each traversal the server fingerprints every
    nameserver it encountered (version.bind) and the UI plots them on an
    OpenStreetMap/Leaflet map with a Country / City / Servers / Software
    table beneath — geolocation happens client-side via geojs.io, so there
    are no API keys and no server-side tracking. Also available raw at
    GET /api/traverse/{id}/servers.

    Public-service guardrails. Traversal starts are now rate-limited per
    client IP (default 30/hour, tunable via EXPLOREDNS_RATE_LIMIT,
    Fly-Client-IP/X-Forwarded-For aware) on top of the existing
    concurrency cap and hard timeout. Direct localhost use is exempt, so
    local workflows stay unthrottled.

    Optional usage reporting. Set EXPLOREDNS_WEBHOOK_URL and the server
    POSTs a JSON event when a traversal starts and another when it completes
    (duration, status, result count, and the summary). Delivery is
    fire-and-forget with a short timeout and one retry — a slow or dead
    receiver can never delay a user's traversal. Off by default; exact
    payload shapes are documented in the README.

    Release engineering. exploredns --version / -V reports the build
    version (also in GET /api/health, alongside the Fly region serving the
    request). From this release onward, every v* tag automatically builds
    and attaches binaries for Linux (amd64/arm64), macOS (amd64/arm64), and
    Windows (amd64) with SHA256SUMS, pushes version-tagged Docker images,
    and deploys the hosted instance.

    Plus: a favicon — the delegation tree in 32 pixels, green leaf for
    the answered path.

    Upgrading from v1.0.0

    • No CLI changes; output and flags are unchanged.
    • Web API: rate limiting is on by default (30 traversals/hour per
      client IP → HTTP 429 beyond that). Raise or lower it with
      EXPLOREDNS_RATE_LIMIT="N/duration".
    • /api/health now includes version (and region when running on
      Fly.io).
    • New endpoint: GET /api/traverse/{id}/servers; SSE streams emit a
      servers stage event when fingerprints are ready.

    Install

    go install gitea.hansenits.com.au/hits/ExploreDNS/cmd/exploredns@v1.1.0
    go install gitea.hansenits.com.au/hits/ExploreDNS/cmd/server@v1.1.0
    
    Downloads