Self-hosted CDN · control plane + edge · OpenResty

One control plane. Your own CDN business.

The control plane is free.

Run your nodes, subscribed nodes and cloud CDNs like Cloudflare from one control plane — routing, protection and billing included.

cdnca architectureVisitors reach three kinds of edges: your own nodes, subscribed nodes and cloud CDNs, which fetch from the origin. The control plane manages nodes over mTLS through the gateway and talks to the licensing service and plugin market.Control planeRouting · Protection · BillingLicensingPlugin marketGateway (mTLS)Your nodesOpenRestySubscribed nodesNode marketCloud CDNsCF · CloudFront · EO · ESAAPIVisitorsOriginnearest edge → cache → originDashed: management & delivery · Solid: visitor traffic

What sets cdnca apart

Node subscriptions

List nodes on the market by day, traffic or 95th percentile; combine subscribed nodes with your own and resell them.

Learn more →

Dynamic routing

Sites are data, not config files: add, change or remove without reloads. Designed for a million sites.

Learn more →

Adaptive WAF

Tunes exclusions to each site’s real traffic; the official rule library updates for free.

Learn more →

Automatic defense

Nodes learn a local baseline, mitigate within seconds when an attack starts and revoke when it ends.

Learn more →

Aggregated edge

Bring your own Cloudflare, CloudFront, EdgeOne or ESA account and schedule it alongside your nodes.

Learn more →

Plugin market

Buy, download and enable plugins inside the control plane; developers publish and earn.

Learn more →

Measured, not promised

1.5 sto apply one change with 100,000 sites — no reload
L4 + L7TCP/UDP forwarding, HTTP/2, HTTP/3
x86_64Ubuntu / Debian / Rocky / Alma / RHEL

Test conditions: single host, OpenResty with 2 workers, 100,000 site objects, one site changed end to end; see tests/dynroute-scale/RESULTS.md in the repository.

Node subscriptions: a CDN without a data centre

Supplier lists nodes → subscriber prepays → sites are delivered → usage settles hop by hop, at any depth.

Node subscription and resale chainSupplier A lists nodes; subscriber B combines its own nodes with A’s and resells to C. Every hop keeps its own ledger and settles by usage.Supplier Alists own nodesSubscriber Bown + A’s nodesSubscriber Cserves sitesprepaidresellSites are delivered to the supplying nodes; usage settles hop by hopPer day · per GB · 95th percentile · daily peak

A protection loop that switches itself on and off

Learn → detect → mine rules (shadow) → mitigate by level → revoke automatically. Only confirmed signatures are shared between nodes.

Automatic defense loopA five-step loop: learn a baseline on the node, detect with reasons, mine rules in shadow mode, mitigate by level, and revoke automatically. Only confirmed signatures are shared across nodes.Learn baselineon the nodeDetectwith reasonsMine rulesshadow modeMitigateby levelAuto revokewhen it ends≤ 2 KB per siteonly confirmed signatures shared

Compared with typical self-hosted CDN systems

CapabilitycdncaTypical self-hosted CDN
Site changes without reloads IncludedUsually reload on every config change
Node subscription and resale IncludedUsually you buy every node yourself
Cloud CDN aggregation IncludedUsually integrated separately
Per-site adaptive WAF IncludedUsually tuned by hand
Automatic defense IncludedUsually handled manually from logs
Plugin market with developer revenue IncludedUsually vendor-only extensions
Control-plane backup and one-click migration IncludedUsually a manual database move
Signed artifacts and signer revocation IncludedUsually unsigned delivery

Up and running in three steps

  1. Sign up and copy the install command

    Register your server IP in the licence centre, then run the one-line installer on it.

    bash <(curl --proto '=https' --proto-redir '=https' -fsSL 'https://auth.cdnca.com/downloads/install-control.sh' || echo "echo '[cdnca-control] error: 无法下载安装脚本' >&2; exit 1") --licensing-server 'https://auth.cdnca.com'
  2. Add nodes

    Copy the node command (with its registration key) from the Nodes page and run it on each node.

  3. Add a site

    Add the site in the control plane and point its CNAME to the assigned target.

Developers: build plugins, sell them in every cdnca control plane

Open API, event webhooks and escrow-settled plugin sales.

Developer platform
Plugin card illustrationA plugin card shows the name, an official or verified-developer badge and the pricing model (free, one-off, subscription); its button moves through buy, download and enable.Sample rule packOfficialVerified devFree / one-off / monthly or yearlyBuyDownloadEnable

FAQ

What servers do I need?
Both control plane and nodes are x86_64 only. The control plane needs at least 4 GB RAM (8 GB recommended); nodes need 1 GB RAM plus 2 GB swap. Ubuntu, Debian, Rocky, AlmaLinux and RHEL are supported — see Requirements.
Is the control plane really free?
Yes. Sign up, copy the install command from the licence centre and deploy. Modules marked “paid” in the plugin market are bought separately; the control plane itself stays usable.
Can I use my own servers as nodes?
Yes. Copy the install command from the Nodes page of your control plane and run it on your server. You can also subscribe to other suppliers’ nodes at the same time.
Does it work with Cloudflare?
Yes. Aggregated edge supports Cloudflare, CloudFront, EdgeOne and Alibaba Cloud ESA using your own accounts; credentials stay in your control plane.
How do I buy plugins?
Buy, download and enable them on the Plugin market page of your control plane. Each purchase is bound to one control plane and can be rebound in the licence centre.