Skip to content

OX Feed Mirror

The PowerDNS Platform Filter OX Feed Mirror (pdns-pf-oxfeed-mirror) is an optional HTTP caching layer for OX Feeds. It polls one or more upstream feed servers, downloads snapshots and deltas to a local directory, and validates each file against the upstream SHA256.

The mirror's own HTTP server only exposes a status page, /metrics, and /healthz. The mirrored tree itself is served to oxfeed-client instances by a separate static HTTP server (typically Caddy or nginx) pointed at the mirror's basedir. See Operations.

What it does

  • Polls upstream feed.json manifests on a configurable interval.
  • Downloads each snapshot, delta, and feed-codes.json listed in the manifest, validating SHA256 during the write.
  • Writes files atomically and removes anything no longer in the manifest.
  • Optionally applies extra expiry rules to reduce local disk usage beyond what the upstream already prunes.
  • Mirrors multiple upstreams in parallel; each upstream runs on its own goroutine with independent polling.

Why use it

The mirror is a deployment-shape optimization, not a required component:

  • Bandwidth. A datacenter full of oxfeed-client instances all pulling from a remote origin multiplies WAN traffic by the client count. One local mirror collapses that to a single WAN pull.
  • Recovery. A filter node that needs to load a fresh snapshot fetches ~1.4 GB. Pulling it over the LAN from a local mirror is far faster than going across the WAN to the origin.
  • Isolation. Clients keep working as long as the mirror has data, even during transient origin outages.

Where it fits in Platform Filter

The mirror sits between the upstream feed producers (zVelo downloader, gitfeed, commandsource, RPZ downloader, HTTP API downloader) and the filter-node oxfeed-client instances. From the client's perspective the mirror looks identical to the origin — same feed.json layout, same snapshot/delta files — only the base URL differs.

See Architecture for the data flow.

Next steps

  • Architecture: how the mirror fits into Platform Filter, the per-upstream worker model, and the file lifecycle.
  • Configuration: full YAML reference.
  • Operations: systemd unit, CLI flags, status page, and healthz checks.
  • Metrics: Prometheus metric reference.