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.jsonmanifests on a configurable interval. - Downloads each snapshot, delta, and
feed-codes.jsonlisted 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-clientinstances 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.