> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.co.in/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/docs/_mcp/server.

# CDN

> Distribute content globally with IBEE CDN. Cache an Object Storage bucket or any HTTPS origin at edge locations for low-latency delivery, with automatic SSL.

The IBEE CDN caches your content at edge locations around the world so users get fast load times no matter where they are. Front any **IBEE Object Storage bucket** or any **custom HTTPS origin** with a single distribution. Each distribution gets a CDN URL in the format `dl-{hash}.cdn.ibee.ai` and an automatically-provisioned SSL certificate.

## Use cases

* Accelerate static assets (images, CSS, JS) for websites.
* Reduce origin server load by caching responses at the edge.
* Add a TLS-terminated edge in front of an Object Storage bucket — see [Object Storage → CDN integration](/docs/infrastructure/object-storage/cdn-integration).
* Cache responses from any external HTTPS server.

## Before you begin

* An active IBEE Solutions organization with a verified account
* For Object Storage origins — a bucket with content to serve ([Buckets](/docs/infrastructure/object-storage/buckets))
* For custom origins — a publicly reachable HTTPS endpoint

## Create a distribution

### 1. Open CDN

In the IBEE Solutions portal, click **CDN** in the left sidebar under **Network & Security**.

The page lives at `portal.ibee.ai/organizations/{orgId}/workspaces/{workspaceId}/cdn`.

### 2. Open the Create dialog

Click **+ Create CDN** at the top right. The **Create CDN Distribution** dialog opens with the subtitle *"Configure origin and caching."*

If no distributions exist, the empty state shows *"No CDN Distributions — Create a distribution to cache and accelerate your content delivery."*

### 3. Fill in the fields

| Field            | Required | Description                                                    |
| ---------------- | -------- | -------------------------------------------------------------- |
| **Name**         | Yes      | Unique distribution name (placeholder: `my-cdn-distribution`). |
| **Origin Type**  | Yes      | Choose **Object Storage Bucket** or **Custom Origin**.         |
| **Cache Policy** | Yes      | Select the caching behavior — defaults to `Static Assets`.     |

### 4. Pick an origin type

**Object Storage Bucket** — *"Use an existing bucket from your storage."*

Pick a bucket from the **Select a bucket** dropdown (searchable). Only buckets in the current organization are listed.

**Custom Origin** — *"Use any external HTTPS website or server."*

| Field                      | Required | Description                                                      |
| -------------------------- | -------- | ---------------------------------------------------------------- |
| **IP address/Domain name** | Yes      | Origin host (placeholder: `api.example.com` or `192.168.1.100`). |
| **Port**                   | Yes      | Origin port — defaults to `443`.                                 |

The custom origin must be reachable over HTTPS. HTTP-only origins are not supported.

### 5. Choose a cache policy

The **Cache Policy** dropdown offers four presets:

| Policy                        | TTL     | Best for                                                       |
| ----------------------------- | ------- | -------------------------------------------------------------- |
| **Static Assets** *(default)* | 1 year  | Images, fonts, CSS, JS — long-lived assets that rarely change. |
| **Media Files**               | 30 days | Video and audio.                                               |
| **Short Cache**               | 1 hour  | Frequently changing content.                                   |
| **No Cache**                  | None    | Always fetches from the origin.                                |

### 6. Save

Click **Create Distribution**. The distribution is provisioned and assigned a CDN URL.

> **Info**
>
> **Custom domains and SSL**
> Custom domains can be added after the distribution is created. SSL certificates are automatically provisioned — no manual configuration required.

## Verify

Your new distribution appears in the CDN list with these columns:

| Column       | Description                            |
| ------------ | -------------------------------------- |
| NAME         | Distribution name                      |
| ORIGIN       | Source bucket or custom origin         |
| CDN URL      | Assigned URL — `dl-{hash}.cdn.ibee.ai` |
| CACHE POLICY | Selected caching behavior              |
| STATUS       | Active / Provisioning                  |
| ACTIONS      | Delete                                 |

Copy the **CDN URL** and use it to serve your content. Click a distribution's name to open its detail page — overview cards for origin, cache policy, and status, the default CDN URL, and the custom domains section.

## Custom domains

Serve content from your own hostname (e.g. `cdn.example.com`) instead of the default CDN URL.

### Point your DNS at the CDN

At your DNS provider, create a CNAME record from your subdomain to:

```
cname.cdn.ibee.ai
```

### Add the domain

On the distribution's detail page, click **Add Domain**, enter the subdomain you pointed at the CNAME target, and click **Add Domain**.

### Wait for validation

The domain card shows **Pending** while the domain is validated over HTTP and an SSL certificate is provisioned — usually 5–15 minutes, up to 1 hour. If the card lists extra **TXT** or **CNAME** records, add those at your DNS provider too. Use **Verify** or **Check Status** on the card to re-check.

### Remove a custom domain

On the distribution's detail page, click the delete icon on the domain's card. The domain is removed immediately, without a confirmation step. Remove the CNAME record at your DNS provider afterwards.

## Purge cached content

Click **Purge CDN** on the distribution's detail page to remove cached content without waiting for TTLs to expire:

| Purge type           | Matches                                                   | Limit       |
| -------------------- | --------------------------------------------------------- | ----------- |
| **URL**              | Exact URLs or paths (e.g. `/images/logo.png`)             | 30 entries  |
| **Hostname**         | All assets under matching hostnames                       | 100 entries |
| **Tag**              | Assets served with a matching `Cache-Tag` response header | 100 entries |
| **Prefix**           | All assets under a directory (e.g. `/images/`)            | 100 entries |
| **Purge Everything** | The entire distribution cache                             | —           |

Separate multiple entries with commas or one per line. **Purge Everything** requires ticking a confirmation checkbox — it briefly increases origin load while the cache refills.

## Troubleshooting

**Distribution not serving updated content**
Cached objects live until the policy TTL expires. Use **Purge CDN** with a URL or prefix purge to refresh specific content immediately.

**Custom origin not reachable**
Ensure your origin is publicly accessible over HTTPS on the specified port. HTTP-only origins are not supported.

**Custom domain stuck in Pending**
Confirm the CNAME record points to `cname.cdn.ibee.ai` and any listed TXT records are added, then click **Verify**. DNS propagation can take up to an hour.

**Cannot add a custom domain during creation**
Custom domains are added after the distribution is created, from its detail page.

## Related pages

* [Object Storage → CDN integration](/docs/infrastructure/object-storage/cdn-integration)
* [Object Storage → Custom Domains](/docs/infrastructure/object-storage/buckets/custom-domains)
* [Object Storage buckets](/docs/infrastructure/object-storage/buckets)