Deployment
Running a DMP node that other people publish to.
Must-read before production: Hardening — TLS, token hygiene, operator signing-key handling, DNS zone hardening, file permissions, network exposure, upgrade cadence. Missing an item here is the most common way a DMP node gets owned.
- Docker — build, run, healthcheck, volumes, ports. The default path.
- DigitalOcean — one-shot bootstrap script for a single Droplet (works on any UDP-capable VPS). The fastest way to a real node on the public internet.
- Native Ubuntu — install directly via apt + pip + systemd, no Docker. ~50 MB idle RAM footprint vs ~150 MB for the Docker recipe. Fronted by Caddy for auto-TLS.
- Production — TLS via Caddy, rate limiting, per-name RRset caps, metrics scraping, env-var reference.
- Clustered deployment — 3-node federation with anti-entropy sync, for operators who need survival across individual node failure.
- Multi-tenant node — per-user publish tokens (M5.5): self-service registration, operator CLI, scope rules, split audit / anonymity property.
- Node heartbeat + directory —
opt-in peer-to-peer discovery layer (M5.8): each node pings peers
with signed heartbeats, aggregators render a public directory
off the resulting signed feed. No central trust anchor required.
Project-canonical render at
/directory/, refreshed every 30 min fromdirectory/seeds.txt. - Hardening — mandatory operator checklist before production.
You only need to run a node if you want other people to publish to your
zone. Using the dnsmesh CLI against someone else’s node does not require you
to run one yourself — just point --endpoint at theirs.