---
title: Installation
related:
  - https://docs.kentico.com/documentation/developers-and-admins/development/website-development-basics/configure-new-projects/xperience-by-kentico-nuget-packages.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

Xperience by Kentico is a content and digital experience management system built on the [.NET platform](https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet). For an overview of the system and its features, read our [product introduction](https://www.kentico.com/platforms/xperience-by-kentico).

> **Info:** Evaluate Xperience by Kentico in a local development environment for 30 days for free. See [Evaluate Xperience by Kentico](https://docs.kentico.com/documentation/developers-and-admins/installation/licenses.md#evaluate-xperience-by-kentico).

Xperience provides boilerplate .NET projects that are distributed as [.NET project templates](https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates) and installed via the [.NET command-line tool](https://docs.microsoft.com/en-us/dotnet/core/tools/) (included with the .NET SDK).

Install an Xperience project:

1. Familiarize yourself with the [System requirements](https://docs.kentico.com/documentation/developers-and-admins/installation/system-requirements.md) – make sure the target machine meets the minimum hardware requirements, runs a supported operating system, and contains the software that Xperience needs for the installation.
2. Install the [project templates package](#installation-installtemplatespackage) that provides project templates you can use to build your website.
3. Select a project to create from the [available project templates](#available-project-templates).
4. [Create the project](#installation-createproject) and the [project database](#installation-createprojectdatabase).

> **Tip:** **Install Xperience on macOS**
>
> For detailed steps for installing Xperience by Kentico on macOS, see [Developing with Xperience by Kentico on macOS](https://community.kentico.com/blog/developing-with-xperience-by-kentico-on-macos).

## Install project templates package&#x20;

Before creating new projects, you must install the Xperience by Kentico project templates package using the .NET CLI.

Open the command line and run the following command:

```cmd title="Install project templates"
dotnet new install kentico.xperience.templates
```

This installs the **latest version** of the project templates NuGet package. The package location depends on the operating system.

You can now [create Xperience projects](#installation-createproject) based on the [project templates](#available-project-templates).

> **Tip:** You can also install a specific version of the project templates. This can be useful if you need to work with an older version of Xperience by Kentico.
>
> For more information, see [Install a specific version of Xperience by Kentico](https://docs.kentico.com/guides/development/get-started/install-a-specific-version-of-xperience-by-kentico.md).

### Available project templates

The following project types are available, each with a different use case:

| Project type                       | Template short name            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Boilerplate                        | kentico-xperience-mvc          | Creates an empty ASP.NET Core application that you can use as a base for your project. The application comes with a basic configuration required to run and develop Xperience projects.<br>Recommended as a starting point for the development of new Xperience ASP.NET Core projects.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Dancing Goat                       | kentico-xperience-sample-mvc   | A sample project of a fictional coffee shop franchise. Demonstrates the content management and digital marketing features of the Xperience solution.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Admin UI customization boilerplate | kentico-xperience-admin-sample | A project for developers who wish to [extend the Xperience by Kentico administration interface](https://docs.kentico.com/documentation/developers-and-admins/customization/extend-the-administration-interface.md). Intended to be used together with another Xperience project (does not work as a standalone application).<br>Helps bootstrap your environment when developing custom client components for the admin UI. For more information, see [Admin UI customization model overview](https://docs.kentico.com/documentation/developers-and-admins/customization/extend-the-administration-interface/admin-ui-customization-model-overview.md) and [Prepare your environment for admin development](https://docs.kentico.com/documentation/developers-and-admins/customization/extend-the-administration-interface/prepare-your-environment-for-admin-development.md). |

The template short name of each project type needs to be specified when [creating projects](#installation-createproject) using the `dotnet new` command.

## Create a project

Once you have installed the project templates package, you can install projects using the .NET command-line interface. You need to know [the template short name for the corresponding project type](#available-project-templates).

1. Open the command line prompt.
2. Navigate to the location where you want to create the project.
3. Run the following command:

   - Replace __ with the template short name of the project type you want to install. See [Available project templates](#available-project-templates).
   - The `-n` parameter sets the name of the installed project. See the [dotnet new](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new) reference to learn more about the command options.
     - It is not recommended to use non-alphanumeric characters in the project name, except for dot '.' or underscore '\_' **after the first character**.
   - The `--cloud` parameter installs a project suitable for [deployment to the SaaS environment](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment.md). Skip this parameter if you plan to host your project in [private cloud](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-private-cloud.md). Projects installed with the parameter include:

     - [Kentico.Xperience.Cloud](https://www.nuget.org/packages/Kentico.Xperience.Cloud) NuGet package that enables deployment to the [SaaS environment](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment.md)
     - Configurations for [SendGrid](https://docs.kentico.com/documentation/developers-and-admins/configuration/email-configuration.md#managed-sendgrid-integration) and  [Microsoft Application Insights](https://docs.kentico.com/documentation/developers-and-admins/configuration/saas-configuration.md#deploytothesaasenvironment-enableappinsights)
     - Default [CD configuration file](https://docs.kentico.com/documentation/developers-and-admins/ci-cd/continuous-deployment.md#generate-cd-configuration-files)
     - PowerShell script used for [generating the deployment package](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment.md#create-a-deployment-package)
     - [Storage path mapping](https://docs.kentico.com/documentation/developers-and-admins/api/files-api-and-cms-io/file-system-providers/storage-path-mapping.md) configured in `Program.cs` for [mapping files to Azure Blob storage](https://docs.kentico.com/documentation/developers-and-admins/api/files-api-and-cms-io/file-system-providers/azure-blob-storage.md#azure-blob-storage-for-kenticos-saas)

     ```cmd title="Create a project from a template"
     dotnet new <short_name> --cloud -n AcmeWeb
     ```
4. Install database .NET tools (`kentico-xperience-dbmanager`) for the project:

   1. You will be asked if you want to install the database tools during the installation of the .NET project (with the `dotnet tool restore` command).
   2. To install the database tools manually, run the `dotnet tool restore` command from the project's root directory.

The command creates the project files and sets up the database tools for the project.

Continue by [creating the project database](#installation-createprojectdatabase).

## Create the project database&#x20;

Before you can run an Xperience project, create a database and register a license key for your application:

1. Obtain a license key for your application and save it in a text file (e.g., _license.txt_):

   - For [deployment to the SaaS environment](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment.md), you only need a license key for the local development environment. [Generate a license key for local development in your Xperience Portal project](https://docs.kentico.com/documentation/developers-and-admins/installation/licenses.md#licenses-saaslicensegenerator).
   - For [private cloud environments](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-private-cloud.md), see [Licensing private cloud deployments](https://docs.kentico.com/documentation/developers-and-admins/installation/licenses.md#licensing-private-cloud-deployments).
   - See [Evaluate Xperience by Kentico](https://docs.kentico.com/documentation/developers-and-admins/installation/licenses.md#evaluate-xperience-by-kentico) to learn how to get a 30 days free evaluation license key for local testing.
2. Run the `dotnet kentico-xperience-dbmanager` command from the root directory of the project:

   > **Info:** The `kentico-xperience-dbmanager` command is installed when [creating a project](#installation-createproject). Run the `dotnet tool restore` command from the project's root directory if the command is unavailable.

   ```cmd title="Create project database"
   dotnet kentico-xperience-dbmanager -- -s "<sql_server_name>" -d "<database_name>" -a "<admin_password>" --hash-string-salt "<hash_string_salt>" --license-file "<license_file_path>"
   ```

- Add parameters after the `--` syntax separator to pass the parameters directly to the `kentico-xperience-dbmanager` command and to avoid conflicts with general `dotnet` parameters.
- Set the `-s` parameter to your database server name.
- Set the `-d` parameter to the name of the database.
- Set the `-u` parameter to the username for the database authentication.
- Set the `-p` parameter to the password for the database authentication.
- Set the `-a` parameter to the password you want to use for the default _administrator_ account.
- Set the `--hash-string-salt` parameter to the [hash salt](https://docs.kentico.com/documentation/developers-and-admins/configuration/macro-expressions/macro-signatures.md) value for the Xperience instance:
  - For [deployment to the SaaS environment](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment.md), [get the hash salt value from the Xperience Portal Dashboard](https://docs.kentico.com/documentation/developers-and-admins/saas/xperience-portal.md#hash-string-salt-for-the-xperience-portal-project).
  - Skip this parameter if you plan to host your project in [private cloud](https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-private-cloud.md).
- Set the `--license-file` parameter to the path to a text file with the license key. This registers the  license key in the Xperience administration.
- Use the `--help` parameter to list all available options
- If you encounter an error when creating the database, add the `--verbose` parameter to get more detailed information, including the error's stack trace.

> **Note:** The `kentico-xperience-dbmanager` tool connects to the SQL Server `master` database during initialization to check the server version and verify database existence. Make sure the database user has sufficient permissions to access `master` (e.g., the `VIEW ANY DATABASE` server permission). This applies even when using the `--use-existing-database` parameter.

The command installs and connects a database to your project via the `CMSConnectionString` application setting (located in the project's **appsettings.json** file).

This completes the installation process. Your Xperience project is now ready for [Development](https://docs.kentico.com/documentation/developers-and-admins/development.md) and [Deployment](https://docs.kentico.com/documentation/developers-and-admins/deployment.md)

## Product analytics

The administration interface includes a product analytics mechanism that collects anonymous usage data to help identify which features and areas are most frequently used.

The data is limited to anonymized instance data and user flows within the administration interface. Sites built on Xperience are fully excluded and no personally identifiable information is collected.

> **Tip:** **Next steps**
>
> - Read [Website development basics](https://docs.kentico.com/documentation/developers-and-admins/development/website-development-basics.md) for an introduction to the general development process of Xperience websites. The document guides you through basic development and hosting environment setups and introduces important Xperience concepts and features.
> - [Set up local hosting](https://docs.kentico.com/documentation/developers-and-admins/development/website-development-basics/set-up-local-hosting.md) for your site so that you can get started with development.
> - Access the Xperience administration by appending **/admin** to your site's URL. Sign in using the default **administrator** account and the password you specified when installing the project database.
> - Accelerate your development with [KentiCopilot](https://docs.kentico.com/guides/development/kenticopilot.md) – a suite of AI development tools that connects your preferred MCP-compatible coding assistant with Xperience by Kentico for context-aware code generation, content modeling, and more.

> **Tip:** **Get more information**
>
> - Take a look at our [Developer kickstart](https://docs.kentico.com/modules/developer-kickstart.md) and learn how to develop a basic website using Xperience.
> - You can also visit our [Community Portal](https://community.kentico.com/), where you can join the Kentico community, find blog posts, Q\&A discussions, and other resources for Xperience by Kentico.
> - If you're stuck with a particular problem, [contact our support](https://www.kentico.com/services/support). Our team operates non-stop and will be happy to assist you.
