Skip to content

Services and ports

A bind is not a firewall policy

Wildcard and private listener binds still require provider and host firewall rules. Keep databases, control endpoints, metrics, cell diagnostics, and telemetry internals off public networks.

Production profiles

ProfileServices
controlcore, web, edge-control, horizon, scheduler, local control-db, local redis
dnspdns-db, pdns-auth, dnsdist, mmdb-updater
telemetryclickhouse, vector, prometheus, node-exporter, alertmanager, grafana, grafana-control-db-provision
edgecell-01 through cell-08, edge-agent, edge-gateway, vector, mmdb-updater
logsone log-collector on the current host; combine once with its role profile
toolsexplicit migrate and pdns-migrate one-shot services

compose.prod.yml is the only production Compose source. Profiles select long-running roles; Fleet-generated per-node manifests filter those services and can point Laravel, Valkey clients, Vector, or Grafana at typed external data endpoints.

Production listeners

ListenerDefault host bindExposure
Browser/API web127.0.0.1:8080The control profile's Caddy service publishes HTTPS
Edge control mTLS0.0.0.0:8443Restrict to registered edge sources
DNSdist${DNS_BIND_V4}:53 TCP and UDPDual-homed on ingress and dns-private; public authoritative DNS with a private PowerDNS backend
Cell slot host diagnosticsloopback 1808118088, 1844418451, 1908119088HTTP, HTTPS, and status; never public
Edge gatewaymapped local service IPv4/IPv6 TCP 80, 443Public/NAT ingress maps one-to-one to local listeners; TLS passes through
Gateway metricsTCP 9105Restrict to edge agent and monitoring
Cell gateway contractTCP 8081, 8444Private gateway-to-cell network; PROXY protocol version 2 required
DNS API Caddy${HOST_BIND_IPV4}:8444Dual-homed on ingress and dns-private; exact-source allowlist and TLS protect external access
Telemetry Caddy${HOST_BIND_IPV4}:8444Dual-homed on ingress and telemetry; exact-source allowlist and TLS; routes Loki push and ClickHouse ingestion privately
Grafana127.0.0.1:3000Operator UI; publish only through an authenticated HTTPS reverse proxy
Loki (development only)127.0.0.1:3100Direct diagnostics; production has no host publication
Operational collector metrics127.0.0.1:9599Bind to a private monitoring address for remote scraping

Host binds are deliberately separate from the public, routed, or NAT addresses advertised in DNS. The default IPv4 wildcard works when those addresses exist only on an external firewall or load balancer. Configure IPv6 only when the host has a working route, firewall policy, local bind, and externally published AAAA/service address; otherwise retain the documented nullable IPv6 values.

The edge gateway binds a directly assigned advertised service address as-is. For NAT or a load balancer, map each advertised address one-to-one to a distinct private local listener with EDGE_GATEWAY_ADDRESS_MAP. Operators that require explicit translation for every endpoint can set EDGE_GATEWAY_REQUIRE_ADDRESS_MAP=true.

PowerDNS 8081, DNSdist statistics 8083, Vector ingestion 8686/8687, Vector traffic metrics 9598, Loki 3100, operational Vector metrics 9599, ClickHouse 8123 and exporter 9363, Prometheus 9090, Alertmanager 9093, PostgreSQL 5432, Valkey 6379, and OpenResty control 9080 are container-private in the intended production topology.

Networks

NetworkProperty
controlinternal control plane
dns-privateinternal PowerDNS and DNS API
telemetryinternal telemetry
ingressreverse-proxy ingress
edgeedge runtime and agent
egressexplicit outbound access

Compose network isolation complements, but does not replace, provider and host firewalls.

Durable volumes

The base production file defines core-storage, control-db, redis, pdns-db, clickhouse, vector-data, operational-vector-data, loki-data, prometheus, grafana-data, edge-state, edge-agent-state, mmdb, and Caddy data/config volumes.

Do not remove these volumes during routine stop, upgrade, or testing. Recovery requires the control database plus its encryption/signing keys and external TLS material; the PowerDNS database and edge snapshots are rebuildable but still reduce recovery time when retained.

Development services

The development topology adds persistent dependency/bootstrap volumes, two shared and two quarantine cells, two optional agents, Pebble, origin fixtures, PowerAdmin, and development PKI. Host publications are listed in Developer setup.

PowerAdmin is enabled by the devtools profile used by make dev-up. It is not part of production.

CDNFoundry documentation