The procedure of each step will be detailed as follows:

{docbook}
<para xml:id="DEV.Cookbook.CopyTemplateOfNodeType">
<citetitle>
<emphasis role="bold">Step 1. Copy templates of node types.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Add the *System* drive to both Platform servers.

!images/how_to_copy_a_site/add_system_drive.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*2.* Open _system\:/jcr:system/exo:namespaces/{{{{namespace_name}}}}_, and export it.

!images/how_to_copy_a_site/export_namespace.png|align="center"  width="150mm" fo:scalefit="1" html:scalefit="0"!

*3.* Open _system\:/jcr\:system/exo\:namespaces/_, and import the exported file as described in *Step 2*.

!images/how_to_copy_a_site/import_namespace.png|align="center"  width="150mm" fo:scalefit="1" html:scalefit="0"!

*4.* In source Platform server, go to *Content administration*

*5.* Open *Manage Node Type* under *Content Types*

*6.* Click *Export* then choose node type to export

!images/how_to_copy_a_site/export_node_type.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*7.* In target Platform server, go to *Content administration*

*8.* Open *Manage Node Type* under *Content Types*

*9.* Click *Import* to import exported file as describe in *Step 6* 

!images/how_to_copy_a_site/import_nodetype.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{note}
If you have some specific JCR namespaces and node types, you need to import them into the new server.
{note}

{docbook}
 <para xml:id="DEV.Cookbook.CopySitesContentFolderWithVersionHistory">
<citetitle>
 <emphasis role="bold">Step 2. Copy a site's content folder with its version history.</emphasis>
 </citetitle>
</para>
{docbook}

*1.* Go to the *Sites Management* drive.

*2.* Open the site node, for example "acme".

*3.* Click *Export Node* to export the node with its version history as below:

!images/how_to_copy_a_site/export_site_nodes2.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*4.* Select *Export* and *Export Version History* to perform the exporting.

*5.* Navigate to the node where you want to import the file, then click *Import Node* to open the *Import Node* form.

*6.* Select the exported nodes and version history to be imported.

!images/how_to_copy_a_site/import_site_nodes2.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

One pop-up message will appear to inform that you have imported successfully.

{docbook}
<para xml:id="DEV.Cookbook.CopyNavigationNodesOfSites">
<citetitle>
<emphasis role="bold">Step 3. Copy navigation nodes of sites.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Go to the *Content Administration* page and add a new drive to both target and source servers.

!images/how_to_copy_a_site/add_portal_system_drive.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*2.* Export the navigation node.

!images/how_to_copy_a_site/export_site_navigations.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

*3.* Import the nodes navigation.

!images/how_to_copy_a_site/import_site_navigations.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!


{docbook}
<para xml:id="DEV.Cookbook.CopyWCMTemplates">
<citetitle>
<emphasis role="bold">Step 4. Copy the WCM template.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Open the *DMS Administration* drive.

*2.* Open _dms-system\:/exo\:ecm/templates/{{{{node_type}}}}_, and export it.

!images/how_to_copy_a_site/export_node_type_templates.png|align="center"  width="150mm" fo:scalefit="1" html:scalefit="0"!

*3.* Open _dms-system\:/exo\:ecm/templates/_, and import the exported file.

!images/how_to_copy_a_site/import_node_type_templates.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

Also, for the CLV/PCLV templates, you can find all template views defined in the _dms-system\:/exo\:ecm/views_ path with:

* userviews: this folder contains views of Sites Explorer with a set of actions.
* templates: where you can find all gtmpl templates of:
** Category Navigation Portlet templates.
** Content List Viewer (CLV) templates and its paginator templates.
** content-browser templates (Deprecated Portlet).
** ecm-explorer templates define how to display nodes in the Sites Explorer portlet, such as CoverFlow template, IconView template.
** Parameterized Content List Viewer (PCLV) templates and its paginator templates.
** *WCM Advanced Search* is used in the *WCM Search* portlet to define the form, layout, result and result's paginator.

If you want to reuse one of the non-predefined templates above, simply export and import it into the new server at the same place.

!images/how_to_copy_a_site/WCM_templates.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{note}
* If you have some specific WCM (CLV/PCLV) views and/or templates of node types, you will need to import them into the new server.
* When you import a document template, you need to restart Platform server to use this template.
{note}


{docbook}
<para xml:id="DEV.Cookbook.CopyTaxonomyTree">
<citetitle>
<emphasis role="bold">Step 5. Copy a Taxonomy tree.</emphasis>
</citetitle>
</para>
{docbook}

By importing the whole site as described in the [*Copy a site's content folder with its version history*|#DEV.Cookbook.CopySitesContentFolderWithVersionHistory] section, you will also have the Taxonomy tree imported. The default location where the site's Taxonomy is placed in a sub-folder is named *category*. So, you do not need to export or import them because this step is automatically done. But the Taxonomy tree definition is still not fully imported in the new server. What you need to do is to add this Taxonomy tree definition by following these steps:

*1.* Open the *DMS Administration* drive in the new server.

*2.* Go to _dms-system\:/exo\:ecm/exo\:taxonomyTrees/definition/_.

*3.* Add a symlink to the *Taxonomy Tree Root Node*, for example _collaboration\:/sites content/live/acme/categories/acme_.

!images/how_to_copy_a_site/select_TaxonomyTree_rootNode.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

The name of symlink is displayed as "acme".

!images/how_to_copy_a_site/select_TaxonomyTree_rootNode2.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

The symlink will be generated as below:

!images/how_to_copy_a_site/select_TaxonomyTree_rootNode3.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

In some cases, to see changes, you need to clear the cache by disconnecting or restarting the server.

!images/how_to_copy_a_site/TaxonomyTree_added_successfully.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!

{docbook}
<para xml:id="DEV.Cookbook.CopyMetadataTemplates">
<citetitle>
<emphasis role="bold">Step 6. Copy metadata templates.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Open the *DMS Administration* drive in the new server.

*2.* Go to _/exo\:ecm/metadata/{{{{meta_data_name}}}}_.

*3.* Export and import it in the same location in the new server again.

{docbook}
<para xml:id="DEV.Cookbook.CopyQueries">
<citetitle>
<emphasis role="bold">Step 7. Copy queries.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Open the *DMS Administration* drive in the new server.

*2.* Go to _/exo\:ecm/queries/{{{{query_name}}}}_.

*3.* Export and import it in the same location in the new server again.

{docbook}
<para xml:id="DEV.Cookbook.CopyScripts">
<citetitle>
<emphasis role="bold">Step 8. Copy scripts.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Open the *DMS Administration* drive in the new server.

*2.* Go to _/exo\:ecm/scripts/ecm-explorer_.

You will find three folders referring to the three types of groovy scripts in eXo Platform, including:

* action: The action scripts are launched when an ECM action triggers them. For more information, refer to *Actions Concept*.

* interceptor: Interceptor scripts are triggered before and/or after the JCR node is saved, or when a node is created or edited. They are used to either validate the value entered in a form or to manipulate the newly created node, for example, to map the new node with a forum thread or any other type of discussion areas.

* widget: Widget scripts are used to fill widgets, such as a select box in a dynamic way.

*3.* Export your customized script in the same location in the new server.

{docbook}
<para xml:id="DEV.Cookbook.CopyDriveConfigurations">
<citetitle>
<emphasis role="bold">Step 9. Copy drive configurations.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Open the *DMS Administration* drive in the new server.

*2.* Go to _/exo\:ecm/exo\:drives/{{{{drive_name}}}}_.

*3.* Export and import it in the same location in the new server again.

{docbook}
<para xml:id="DEV.Cookbook.CopyGadgets">
<citetitle>
<emphasis role="bold">Step 10. Copy gadgets.</emphasis>
</citetitle>
</para>
{docbook}

*1.* Open the drive that points into the *Portal-System* Workspace.

*2.* Go to your gadget by following the _portal-system\:/production/app:gadgets/{{{{gadget_name}}}}_ path.

*3.* Export and import it in the same location in the new server again.

{docbook}
<para xml:id="DEV.Cookbook.RestartServer">
<citetitle>
<emphasis role="bold">Step 11. Restart the server.</emphasis>
</citetitle>
</para>
{docbook}

After importing the site navigation nodes, the site may look quite broken, so you need to restart the server first. After the server is restarted, the site will look like:

!images/how_to_copy_a_site/acme_site_after_import_and_restart.png|align="center" width="150mm" fo:scalefit="1" html:scalefit="0"!
