HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Deploy CMS

Describes services and setup options to deploy and scale Optimizely Content Management System (CMS) sites. It is intended for hosting professionals and partner developers who configure and deploy CMS sites in different infrastructure environments.

Because the Optimizely Content Management System (CMS) solution is based on ASP.NET Core, you can deploy it on operating systems other than Windows.

You can deploy CMS sites to a distributed infrastructure and failover protection that supports availability and scalability. CMS is multi-tenant, meaning that a single running IIS application of CMS can host multiple websites using a shared database. The sites can share content, and you can launch websites from the administration view in CMS.

You can maintain one installation to deploy to multiple servers, supporting the websites. Elastic scaling, where you add and remove servers on demand, lets you upsize and downsize the infrastructure capacity. CMS provides services to facilitate cloud deployment, such as event management and BLOB storage providers.

Deploy CMS diagram

Multi-site configuration and deployment scenarios

A multi-sites is where websites in CMS share the same file structure on the web server and the same database for storage. Websites in a multi-site configuration can share the same content assets, such as media files and blocks. You also can have site-specific content folders for content that should not be shared between sites.

The Media tab displays the following folders:

  • For All Sites
  • For This Site
  • For This Page

Because CMS is multi-tenant, you can:

  • Run your websites on the same IIS application or the same server as long as you configure the site IIS to respond to multiple host names.
  • Launch sites from the CMS admin view without additional configuration if the IIS site or server is configured to respond to any hostname.
  • Remove sites when they are not needed anymore, providing a more cost-efficient way of managing website infrastructure.
  • Isolate sites to run on multiple IIS applications or servers, for example, if you have specific security or performance requirements, in which case you configure a site outside Optimizely.

Deploy using XCOPY

You can install CMS through XCOPY deployment by copying application files. An XCOPY-style file transfer simplifies the deployment and maintenance of Optimizely sites because it does not create registry entries or register shared components. An example of XCOPY-style hosting is Azure Web Sites, where only a directory is provided, and you cannot run an installation procedure.

Another benefit of the XCOPY architecture in CMS is that it does not store machine-specific or site-specific information in configuration files, so you can use a shared folder for multiple servers. During development in a shared environment with source control, developers can keep configuration files checked in and still create a site that can be duplicated in a multi-site deployment. Because the CMS is based on ASP.NET Core, the application files (XCOPY files) can be produced or published using .NET publish commands.

See also the following deployment scenarios.

Cloud providers

Event providers

The event management system distributes events between applications on the same physical server or among Optimizely sites on separate servers in a load-balanced environment. The event management system in Optimizely is provider-based, and you can use the built-in event provider or develop your own customized one. See Event management.

BLOB providers

The Optimizely platform supports BLOB (binary large object) storage of assets using a provider-based configuration. The BLOB provider stores large amounts of media binary data (perhaps using cloud storage), while CMS stores metadata for media files in the database. You can use the built-in BLOB provider for media files or develop a customized one. See BLOB storage and providers.


When you use cloud services, the database can be an on-premises SQL database, an Amazon RDS instance, or an Azure SQL Database. You define the site database during deployment; see Install database schema.

License file

The license file contains information about licensed servers and sites; different options exist. You can run Optimizely without a license file in IIS Express during development or local Linux docker. Still, it requires a license file when you deploy the solution to a server.



Mirroring Mirroring applies to CMS versions 10 and 11 and is not supported on Optimizely Digital Experience Platform (DXP) and other cloud deployments. Mirroring is a legacy feature that will be removed in future versions.