Set up Video CDN
This page describes how to create a Video CDN resource, configure file import, configure a domain, and test delivery in the Websa panel.
Video CDN from Advanced Hosting is a globally distributed, cloud-based delivery network that stores copies of your media across data centers and streams each file from the node closest to the viewer.
Before you begin
Make sure you have the following:
- A Websa user-panel account with Video CDN enabled.
- Content to deliver from an origin you control, such as:
- A Linux server.
- An S3 bucket.
- A Swift bucket.
- A Cloud Storage bucket.
- Or a single test file between 10 MB and 10 GB. The file can be an image or a video.
- Access to your DNS settings if you plan to use a custom domain.
- About 5 minutes.
How Video CDN works
Video CDN uses a two-tier architecture and replicates content based on real demand instead of copying every file everywhere.
The delivery flow is:
- A viewer requests a file from a browser or player.
- A Tier-1 redirector receives the request.
- The redirector returns a
302 Foundredirect, or an HLS/DASH manifest, pointing to the best edge node. - A Tier-2 edge node streams the file to the viewer.
The redirector chooses the edge node based on geography and live load.
Redirector
A Tier-1 host that receives every request and answers with a 302 Found redirect, or an HLS/DASH manifest, pointing to the best edge node, chosen by geography and live load. Anycast routing here gives built-in fault tolerance.
Edge node
A Tier-2 host that does the heavy streaming over unicast, saturating uplinks to 85–90% of capacity to keep delivery fast and cost-efficient.
File import
Pre-imported files cover roughly 99.9% of all requests and unlock advanced features, including:
- Multi-bitrate manifests.
- Clipping.
- Format conversion.
Configure at least one import method before going live.
Create a resource
To create a Video CDN resource, follow these steps:
- Log in to your user panel account.
- In the navigation panel on the left side of the screen, select Video CDN. The new Video CDN resource creation page opens.
- In the Resource name field, enter a name to identify the resource.
- In the Resource folder name field, enter the path to your resource within Video CDN storage. Folder names must not contain spaces. Use
/for folder nesting. - Click Create Video CDN Resource.
The resource is created and associated with the selected folder. The file import setup page opens.
Configure file import
After the resource is created, configure at least one import method so the CDN knows where to pull your files from.
Choose the method that matches where your content already lives.
| Method | Use it when | You provide |
| Cloud Storage | Your files already sit in an object-storage bucket. Simplest for most teams. | Bucket + folder path |
| Rsync | You run a Linux origin with rsyncd and want full control. | rsync:// credential string |
| S3 | Your content lives in S3-compatible object storage. | Endpoint + keys + bucket |
| Swift | Your content lives in Swift object storage. | Auth + container |
| Lazy Import | You cannot pre-import yet and want files proxied from your origin on first request. | Origin / Fetch URL |
Import from Cloud Storage
- On the File Import tab, set Import from to Cloud Storage.
- Select your existing bucket from the list.
- Enter the folder path to the content you want to serve.
- If you do not have a bucket yet, use Create new bucket and return to this step.
- Click Save changes.
- Click Go to domains.
Upload your content into the bucket you selected. The CDN serves what it finds there.
Import from Rsync
If you serve from a Linux origin with rsyncd installed, build a single credential string in this format:
rsync://{login}:{password}@{host}/{module}/{path}
Example:
rsync://foo:bar@example.com/tales-as-stories
In this example, the user is foo, the password is bar, and the shared path is /tales-as-stories on example.com.
- On the File Import tab, set Import from to Rsync.
- Paste your credential string into the field.
- Leave Fetch URL toggled Off.
- Click Save changes.
- Click Go to domains.
Configure your domain
The domain is the address your viewers and players request content from.
Every resource includes a system domain. You can also attach your own domain.
System domain
A system domain is generated automatically by the platform.
Example:
cdn88624272.ahvcdn.me
The system domain is already covered by Shared SSL. You can use it as-is, or map your own domain to it.
User domain
A custom domain you add yourself, for example, cdn.yoursite.com, so content is served under your own brand.
- On the Domains tab, copy the System domain value and keep it in your notes — you can use it in your project right away.
- To serve under your own brand, click Add user domain, enter your hostname, for example,
cdn.yoursite.com, and confirm with Add domain. - In your DNS, point a CNAME record from your hostname to the system domain.
- For HTTPS on a user domain, open the certificate dropdown next to it and choose Shared SSL, automatic Let’s Encrypt, or upload your own certificate.
- Click Go to resource.
Resource settings → Domains, showing the System domain row with Shared SSL and the Add user domain button.
That’s the setup done. The system has everything it needs, and within a couple of minutes your content is available at edge nodes worldwide.
Test delivery
Confirm delivery before you point production traffic at the CDN.
- Open the Files section.
- Click Upload File.
- Drag in a test file. The file must be between 10 MB and 10 GB. It can be an image or a video.
- Optionally, rename the file.
- Pick the resource it belongs to.
- Click Upload.
- Wait until you see the success confirmation.The file now appears in Files.
- Request the file through your system domain:
curl -I https://cdn88624272.ahvcdn.me/your-folder/test.mp4
Replace the following values:
cdn88624272.ahvcdn.mewith your system domain.your-folderwith your folder.test.mp4with your file name.
A working response redirects you to the nearest edge node:
HTTP/2 302
location: https://edge-xx.ahvcdn.me/...
Troubleshooting
| What you see | Why | Fix |
| File size must be between 10 MB and 10 GB | Test upload is outside the allowed range. | Use a file within 10 MB–10 GB. |
| Please create a resource first | You tried to upload before a resource exists. | Click OK to jump to resource creation, then retry. |
| 404 Not Found on a real file | The file was requested before it was imported. | Confirm the import method and folder path, or configure Lazy Import to proxy on first request. |
| HLS / DASH not playing | Adaptive streaming needs pre-imported files; it is off in proxy-only mode. | Pre-import the file instead of relying on proxying. |
Video CDN delivers over HTTP, HTTPS, and HTTP/2.
RTMP and RTSP are not supported. HTTP/3 is not available yet.
Additional information
After the resource, import method, and domain are saved, files become available at edge nodes within a couple of minutes. Popularity-driven replication then spreads frequently requested files closer to where they are watched.
Use Cloud Storage if your files already live in an object-storage bucket, Rsync for a Linux origin you control, and S3 or Swift to connect existing object storage. Choose Lazy Import when you cannot pre-import yet and want files proxied from your origin on first request.
Video CDN supports HLS and DASH adaptive streaming for pre-imported files. Adaptive streaming, manifest generation, clipping, and track selection require the file to be imported into CDN storage. These features are automatically disabled for proxy-only, non-imported resources.
By default, the CDN returns 404 Not Found when a viewer requests a file that has not been imported. If Lazy Import is configured, the request is proxied to your origin, returning 200 OK if the file exists. The file is then queued for background import so future requests are served from the edge.
You can manage Video CDN through the panel or through the API. Generate Video CDN API credentials from your account to create resources, manage imports, and configure delivery programmatically. The panel and the API control the same settings.
Next steps
- Import methods explained
- Signed URLs and hotlink protection
- Multi-bitrate streaming
- Geoblocking
- API reference
- KVS integration
Last updated: May 2026