Features
Content delivery with caching
HTTP fetch on demand
Fetch and cache files/objects from remote HTTP(S) URL on demand.Disk cache
Used for temporarily storing files/objects (on disk) so that they can be provided faster for subsequent requests.Survives server/program restart. Does not consume server memory.
Memory cache
Used for temporarily storing files (in memory) so that they can be provided faster for subsequent requests. Much faster than disk caching, but requires memory (RAM).Use for files which are requested very frequently.
Compressed storage
Files/objects are stored in Brotli compressed format, for lower disk/memory use and optimized CPU usage (each object only compressed once, rather than every request).Instant purge
You can instantly purge (clear out) all the cached files/objects by clicking a "Purge" button in the UI or via the REST API "flush" command.Origin shield
Setup multiple layers of OwnCDN cache servers to shield your origin server (see KB article)Stampede protection
Multiple requests for the same uncached/expired file/object are queued, and only a single request is sent to the source.This ensures that only one request at a time can (re)populate the cache, improving performance and stability, and reducing load on the source.
Sliding expiration
Cache expiration time of a file/object is reset each time it is requested. This ensures that frequently requested items are kept in the cache providing faster responses, while infrequently access items are removed, freeing up space.File/object / key-value storage
Versioned / point-in-time recovery
Instead of overwriting previous versions of a file / object, OwnCDN can create a new version for each update (including deletions). This means that it is possible to restore individual files to a previous version - including deleted files.It is also possible to restore the whole storage service to a specific earlier point in time.
To preserve disk space, you can configure for how long old versions are retained.
S3 compatible API
Implements mosts of the AWS S3 API, making it compatible with all kinds of software that supports the S3 API (tested with a large number of apps).Live replication
Any file additions, updates, and deletions you make to files on one OwnCDN instance can be instantly synchronized to another instance. This includes versions, so that restoring old versions and point in time recovery also works on the replica server.Recoverable disk storage format
Files / objects are stored in a SQLite database file in WAL mode (very performant and provides safe database recovery after server crash).Highly reliable key-value store
Store JSON / BSON objects to take advantage of replication and point-in-time restore features.Compressed storage
Files / objects are stored in Brotli compressed format, for lower disk use and optimized CPU usage (each object only compressed once, rather than every request).Optimized for streaming
Large files (such as video) are automatically broken into and stored as smaller pieces to support video streaming / byte-range requests.Optional file system storage
Optionally serve files directly from disk (upload, download, list files using REST or S3 API, and more).For situations where you also need direct access to the files from other applications.
Note: Does not support versioning, replication, or compression.
Image resizing and optimization
On-the-fly image resizing
Specify target width and optionally height in URL query parameters. The resulting image will be scaled so that neither width nor height is more than the specied values.You can also configure a fixed maximum image width.
On-the-fly image cropping
Specify cropping, target width and height in URL query parameters. The resulting image will be cropped and scaled to fit, so that only the middle part remains.WebP / JPEG Compression
Compress images using WebP or JPEG compression.Use "quality %" setting to control quality of compressed images.
Browser WebP support detection
Automatically serve WebP compressed version of images to browsers that support this (WebP is often half the size of JPEG with same image quality).Automatic JPEG rotation fix
JPEG images are automatically rotated according to embedded data from camera, ensuring there are no surprise up-side down images.API
HTTP API
Provides programmatic access to your OwnCDN instance - for example for uploading files from other applications.S3 mode
Automatically detects requests using the AWS S3 API syntax.OpenAPI specification
The HTTP API comes with an OpenAPI specification, making it easy to integrate and test.API playground / code samples
Test the API directly in your browser, and get code examples in 18 different programming languages.API key permissions
Limit API access by setting up API keys with individual read/write permissions for each service.Miscellaneous
Web UI / Admin dashboard
Configure, operate, and monitor OwnCDN in your browser - locally or remote.Chain and combine services
Chain and combine services in a way you like.For example, set up an HTTP binding to source items from a disk cache service - which sources items from an image optimizer service - which sources items from a storage service.
Last 100 HTTP requests
Get a quick overview of the last 100 HTTP requests for any service.(You can also configure full logging via IIS)
Minimal requirements
If you are already running Windows / IIS, adding OwnCDN will use minimal extra resources.We run an instance of OwnCDN serving hundreds of requests per second on a $20 Windows VPS with very low resource usage.