Sitecore Ship installation and configuration to support Sitecore update package deployments (like TDS), in a CI/CD pipeline

Raul Ruiz
Raul Ruiz
Jan 8, 2019 · 3 min read

Te following steps describe how to install and configure Sitecore.Ship in a Sitecore instance, on prem or Azure PaaS, to accept .update packages installation over an HTTP request.

After you have Sitecore.Ship configured you can automate package deployments in different ways, like in combination with Powershell in a CI/CD tool like Azure Devops, Octopus Deploy, etc.

NOTE: The step were tested on Sitecore 9.0.0 and 9.0.1.

Step-by-step guide

First download Sitecore.Ship.Aspnet nuget package and deploy its DLLs to the website/bin folder in your Sitecore instance

Insert new section definition in the web.config

<section name="packageInstallation" type="Sitecore.Ship.Infrastructure.Configuration.PackageInstallationConfiguration, Sitecore.Ship.Infrastructure" />

Add the following handler at system.webServer/handlers

<remove name="Sitecore.Ship" />
<add name="Sitecore.Ship" verb="*" type="Sitecore.Ship.AspNet.SitecoreShipHttpHandler, Sitecore.Ship.AspNet" path="/services/*" />

Append this httpHandler at system.web/httpHandlers or the sections if doesn’t exist

<httpHandlers>
<add verb="*" type="Sitecore.Ship.AspNet.SitecoreShipHttpHandler, Sitecore.Ship.AspNet" path="/services/*" />
</httpHandlers>

At the end of the web.config insert the Sitecore ship config section (here we can restrict access to the endpoint with a list of allowed IP addresses):

<packageInstallation enabled="true" allowRemote="false" allowPackageStreaming="false" recordInstallationHistory="false" />

Finally create a new config file inside the folder App_config/Include with the name ship.config, and the content as bellow (this is to tell sitecore to ignore request to /sitecore/* path)

<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">
<sitecore>
<settings>
<setting name="IgnoreUrlPrefixes" set:value="/services/|/sitecore/default.aspx|/trace.axd|/webresource.axd|/sitecore/shell/Controls/Rich Text Editor/Telerik.Web.UI.DialogHandler.aspx|/sitecore/shell/applications/content manager/telerik.web.ui.dialoghandler.aspx|/sitecore/shell/Controls/Rich Text Editor/Telerik.Web.UI.SpellCheckHandler.axd|/Telerik.Web.UI.WebResource.axd|/sitecore/admin/upgrade/|/layouts/testing" />
</settings>
</sitecore>
</configuration>

And that’s all!

For documentation on how to use Sitecore.Ship endpoints and parameters, follow this links:

This is an example of how to send a publish request (smart publish) to Sitecore, and should be similar for uploading a package


Originally published at .

More From Medium

Also tagged Configuration

Also tagged Configuration

Publish website in AWS

Pradeep Batchu
Feb 4 · 4 min read

5

Also tagged Configuration

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade