You have successfully created, configured, and updated your project in Kentico SaaS. So far, we have only discussed the QA environment. Now let's deploy your solution into PROD in Xperience portal.
The QA and UAT deployment environments are intended to ensure all the functionality, features, and key branding assets (e.g., logos) are present in your SaaS application. They do not provide sufficient performance, availability, and backup policies for projects with larger content editing teams.
Kentico provides an option to add a *Staging (STG)* environment to your service plan for this purpose. If your plan does not include the STG environment, the editors should prepare content in PROD.
See our documentation for information about deployment best practices and staging best practices.
While uploading a deployment package to the PROD environment directly in the Xperience Portal is possible, this feature is reserved for emergency fixes and special cases only.
Typically, we recommend you deploy to PROD from QA or UAT, optionally through STG, depending on your license tier.
When your solution is ready to move into the staging or production environment, the process is very straightforward.
To start, visit your Xperience Portal and ensure you are working under the correct project.
On the Deployments page, under the QA environment, open the Deploy to dropdown and select the environment you want to deploy to.
The screenshot above shows the Deployments page for a Level 1 license with staging enabled.
Our example uses a Level 1 license without staging, so we will deploy straight from QA to PROD. If you had an additional STG environment, you would first deploy QA → STG, then STG → PROD. For all of these, the process looks very similar.
After choosing your deployment environment from the dropdown, you’ll see a pop-up warning that the application will be temporarily shut down for the duration of the deployment.
For production scenarios, you can enable zero-downtime deployments by ensuring your code supports read-only mode and using the -ZeroDowntimeSupportEnabled parameter when you initially create the deployment package.
Click Start deployment.
Just like in QA before, the portal queues your deployment before changing its status to In progress.
You may not see your queued deployment immediately. If you clicked Start deployment and the system navigated you back to the Deployments page, but you're not seeing your deployment queued or in progress, do NOT click Deploy to → PROD again. Instead, try waiting for a minute or refreshing the page.
Otherwise, you may end up with several identical deployments queued, unnecessarily taking up resources.
You can watch the status and time elapsed on the Deployments page.
The above process applies if your deployment package is smaller than 2 GB. If it exceeds 2 GB, you need to use the custom restore feature instead to upload your data into each environment.
Once the PROD deployment finishes, just like before, you can see it in the Deployment history section with status and other information, and the option to download logs.
In the PROD section of the Dashboard, you can also see the new deployment info and a link to the Xperience Administration in PROD (using the system domain). If you click the link, you should be able to sign in to and browse your solution's administration in the cloud production environment.
During the channels configuration step, we created default channels and domains for all of your environments, so now you should also be able to see your PROD live site through your production website channel default domain:
Xperience Portal allows you to set up custom domains for the PROD environment.
Under Channels and domains → System domains, you can see system domains for all your environments:
You cannot rename any of these domains, but you can add another domain as an alias for Email sending and Email service in PROD by clicking the green swap icon. If you have an existing valid domain you can use, feel free to give it a shot.
Under Channels and domains → Channels, you can define custom domains for each channel. Click the green globe icon on your Dancing Goat Website channel and select Add domain to open the wizard.
The wizard first asks you to choose a method:
Notice that custom domains can only be added for production environments - PROD or STG; in our example (a Level 1 license without staging), only PROD is available.
Already using Cloudflare?
If the domain you want to move already has its DNS zone on Cloudflare, the Pre-validation method cannot validate it. Cloudflare does not allow token pre-validation for a domain that is already on its network. Use Standard and plan a short maintenance window instead. See Add website channel domains with minimal downtime for the full explanation.
The steps for both methods are broadly the same, Standard runs as a three-screen wizard, the Pre-validation method adds the extra pre-validation and final-switch checks that let you move an already-live site onto the custom domain with minimal downtime.
In general the "happy path" looks like this:
The following video shows using the Standard method.
If validation fails, the Portal lists the exact records that don't match (showing expected vs. actual values) and offers a How to configure DNS records? button that opens our Configure DNS records for custom domains documentation directly. Correct the records with your provider, then click Validate again – see revalidate a custom domain.
Track your DNS validation progress through the domain's status.
For email channels, the flow is the same, with one extra choice: you select a Domain kind – an email sending domain or a service domain. When a new custom sending or service domain reaches Active, it replaces the previous default domain of that kind.
When you're ready, move on to the next page: Where to go from here