This video demonstrates the process of configuring SiteSync between two Sitefinity CMS website environments - source and destination:
Before you configure the SiteSync module, you need to make sure the source and destination environments are identical copies of the same project. When you are starting with one environment only, and must setup an extra environment to which you will promote content via SiteSync, we recommend following these steps:
- Backup your existing Sitefinity CMS website database.
Starting with a backup of your existing website database is a necessary step as it guarantees your destination environment starts with the same database as the source environment. This is necessary for SiteSync to operate properly.
NOTE: Backup is the most common option, but if your environment or use case scenario requires a different mechanism (such as scripting or packaging) for bringing up an identical database on destination, this is OK. The important element is to have an identical copy of the database configured for the destination environment.
- Restore the source website database to a database server that will be used for the destination environment website.
- Copy your existing Sitefinity CMS website files.
Copying the entire website guarantees that your destination environment will have identical code and configurations.
- Paste (or use any other suitable mechanism, for example, deploy) the website files on the new environment file system.
- Adjust any environment-specific settings, which must differ between the two environments. For example:
- The connectionString element in the DataConfig.config file, which needs to point to the destination website database (the one you restored in step 2)
- Any CDN or blob storage providers settings, in case you are going to use different settings for the destination environment
- And any other that apply to your scenario
NOTE: The environment-specific settings can be applied directly on the destination environment via changing the configuration files or be handled via config transformations in case of a CD setup. There are no limitations to the approach you prefer, the important part is to ensure your source and destination environments have matching configurations, and only the environment-specific settings differ.
- Configure the destination website in IIS.
For more information, see Run projects on IIS.
Install SiteSync module
The first step in setting up SiteSync is to install the SiteSync module. By default, this module is disabled, and you must enable it before working with SiteSync. To install the module, follow these steps:
- Navigate to your Sitefinity CMS backend and click on Administration -> Modules & Services
- Locate the Site Sync module in the list of all modules and click on Actions -> Install
NOTE: The SiteSync module needs to be installed on both source and target environments. Repeat the above steps for any environment that will be used as either source or destination.
Grant users permissions to work with the SiteSync module
To access SiteSync and promote content, you must grant all users that will be promoting content from the source environment the proper permissions to access the module. Users in the Administrators role have access to the SiteSync module by default. For more information, see Administration: Security and authentication.
Configure the SiteSync module
Once you have set up the source and destination environments, installed the SiteSync module, and configured the correct permissions for your users to access the module, you need to proceed with configuring the SiteSync module. This is an important step as it specifies which environment is going to be used as a source or destination for content promotion, as well as the addresses of the destination environments that each source is going to promote content to. The SiteSync module is configured differently depending on whether an environment will be used as source or destination.
To configure SiteSync on your destination and source environments follow these steps:
On your destination environment(s)
- From your Sitefinity CMS website backend navigate to Administration -> SiteSync
- In case the SiteSync module is not configured yet, Sitefinity CMS displays an information screen letting you know that no servers/sites are set to synchronize data with:
Click on the Synchronization Settings link on that screen to proceed with configuring SiteSync.
- On the next screen, select the Allow content from other sites to be published to this site checkbox.
- Once you enable the Allow content from other sites to be published to this site option, Sitefinity CMS displays the Site key configuration setting. The Site key accepts an integer value between 0 and 100. This value is used by Sitefinity CMS when generating the content IDs (GUID). It ensures that any ID generated on your source environment with one site key will be different from any ID generated on your destination environment, where another site key is used.
NOTE: You must configure a different Site key for any environment that will serve as destination for content promotion via SiteSync. If you are promoting content through more than one environment, for example Content Authoring -> Staging -> Production, the Staging and Production environments will serve as destinations, and need to have different Site keys. The Site key of the next destination environment must always be incremental to the one configured on the previous destination environment. For example, if you have Content authoring -> Staging -> production, and you have configured Staging to have a Site key value 1, the value on Production must be 2.
- Click Save changes.
Following these steps, you have configured the SiteSync module on your destination environment. To complete the setup, you need to create a dedicated user, which will be used by the SiteSync module when promoting content to this environment.
- Go back to the Sitefinity CMS dashboard and navigate to Administration -> Users.
- Create a new user and assign the user to the Administrators role. If you are using multiple membership providers, we recommend that you create this user in the default membership provider. Otherwise, you must specify the membership provider alongside the username, when configuring the destination server settings on the source environment.
RECOMMENDATION: We recommend that the user you just created is reserved for SiteSync usage only, as opposed to logging in to the destination environment. If you log in with this user on the destination environment and try to promote content to this same environment, SiteSync module will fail with a “User already logged in” error.
On your source environment
Once you configured your destination environment, you must proceed by setting up the source environment as well. While on destination environment you take care of setting up Sitefinity CMS to receive data, on the source environment you need to specify where to promote content to. You do this in the following manner:
- From your Sitefinity CMS website backend, navigate to Administration -> SiteSync.
- In case the SiteSync module is not configured yet, Sitefinity CMS displays an information screen letting you know that no servers/sites have been set to synchronize data with:
Click on the Synchronization Settings link on that screen to proceed with configuring SiteSync
- Leave the Allow content from other sites to be published to this site checkbox unchecked. In the most common scenario, where you have one source and one destination environment, only the destination environment receives data. You must select this checkbox only if your source environment acts as a destination environment for another source (for example a Staging environment in a setup like Content Authoring -> Staging -> Production). For more information see Using SiteSync to promote content between multiple environments.
- Click the Add a server button
- In the Add a server dialog, fill in your destination environment parameters:
- For URL / IP address provide the public URL or IP of the destination environment. SiteSync will use this address for web services communication between the source and destination environments. If you are configuring SiteSync for a Load balanced setup, see Specifics when configuring SiteSync in load balanced setup.
- For Username and Password provide the credentials of the dedicated SiteSync user you created when setting up the destination environment.
NOTE: If you have created the dedicated SiteSync user in a membership provider, different than the default one, you must specify the provider name alongside the username in the Username textbox. You must stick to the following format: providerName\userName.
NOTE: In the most common scenario you are promoting content from one source to one destination environment. If your scenario requires promoting content from one source to multiple destinations, you can add more than one server following the above listed instructions. For more information see Using SiteSync to promote content to multiple destinations.
- Click on the Save changes button
- Now that you configured the SiteSync module on your source environment, you must test whether SiteSync can successfully communicate with the destination environments you configured. To do this, navigate back to the SiteSync module by clicking on the Go to sync link on the same screen, or by going to Administration -> Site Sync. Once you have configured the module, Sitefinity CMS no longer prompts you to go to Synchronization settings, but will open the Syncing of published data screen instead.
- If you are using Multisite, you must select the desired destination server to test connectivity from the This server will send data to dropdown. You can see the dropdown only if you have more than one destinations configured in SiteSync.
Next, select any site form the list to proceed with testing. If you are not using Multisite, then you are directly served with the next screen.
- Click on the Test connection(s) button. If you are not using Multisite, you can select the desired destination environment (if you have more than one configured) from the dropdown on this screen.
The Test connection functionality performs a sanity check of the SiteSync module connectivity with the configured destination environments. A successful Test connection check verifies that the sync operation can be executed. It covers the following elements:
- Communication - whether the configured destination server is accessible (response status code 200 (OK))
- State of the SiteSync module - whether the SiteSync module is installed and its pages are accessible on the destination environment
- Dedicated SiteSync user – whether the source environment can successfully log in with the configured user for the destination environment, and whether that user is not already logged in
- Sitefinity CMS versions match – whether the Sitefinity CMS version of the destination environment is the same as the one on source
- Multisite languages match – whether the language configurations for source and destination are the same
After a successful Test connection check, you have completed configuring SiteSync on your source environment.
NOTE: The test connection operation does not guarantee that a content promotion will pass successfully, as this requires actual push of data from source to destination. It guarantees only that the sync operation can be run.