Getting Started with Umbraco Courier 2.5

Home » ASP.NET MVC » Getting Started with Umbraco Courier 2.5
Umbraco Logo

I have recently been working on an Umbraco project, and have evaluated Courier in order to deploy changes from an internal test site to live.

While Courier does the job, I am not very impressed overall. There are a mass of missing links, and next to no information on the web on how to get started. So this is my record which hopeefully will help someone (and myself the next time I have to do this).

The only resource I could find on the web was a fairly amateur Youtube video on Courier, which wasn’t all that helpful. You can’t see whats on the screen just the back of peoples heads. It isn’t really worth watching, it just warns you that not all component types are supported. I was only looking to deploy content and media, so hopefully this warning doesn’t apply to me – it certainly worked out that way during testing.

This is the official Umbraco Courier 2.5 link, which has a lot of incomplete documentation and missing links at the time of writing.

So, on to my findings:

Firstly its necessary to install Courier on both test and live. I made two test sites on my local dev machine, localhost:1600 and localhost:1601. The idea being to deploy from 1600 to 1601. I then installed the Courier package on both of these sites. When asked to specify a location during installation I specified the other site, e.g. on 1600 I typed in localhost:1601. If I didn’t do this there appears to be no way to enter it later, you have to uninstall and re-install again.

When installed, Umbraco Courier gives you a new icon on the admin login, and also an additional option on the action menus within Umbraco. I will explain both methods below:

Deployment from the Content Tree

When logged on as admin, you choose the appropriate part of the tree and then click the Elipsis, then click Do Something Else.

Select Courier from Umbraco Content Tree

Select Courier from Umbraco Content Tree

You then choose “Courier” and the following page appears:

Deploying from Content Tree

Deploying from Content Tree

After some thinking, the following page appears:

Deploying from the Content Tree

Deploying from the Content Tree

Deployment from the Courier Menu

This is more complicated. From what I can tell (there are no video or other links available to tell me exactly how this is supposed to work, even the link from the Courier dashboard gives a 404), this is how its supposed to work:1. You create a revision.

Umbraco Courier Dashboard

Umbraco Courier Dashboard

2. When you create a revision, you have to specify what is in it. For us, choosing the appropriate Document content in the tree (or all documents) plus the correct level of dependancies was all that was required:

Selecting Content in Revision

Selecting Content in Revision

3. This is the revision page before you press “Package Selected” to create the revision:

Revision page before pressing "Package Selected"

Revision page before pressing “Package Selected”

4. Once it has been created you press Transfer to transfer it to the target machine:

Transfer to Target Server

Transfer to Target Server

5. Enter the target server from the drop down and press “Transfer”:

Press Transfer to copy to the Target Server

Press Transfer to copy to the Target Server

6. Log into the target server and find the revision in the Courier dashboard (or press Reload nodes if you are already logged in). Click on that revision, then click “Compare and Install”:

Installing on Target Server

Installing on Target Server

7. You then should press “Install Revision” to complete the process:

Press Install Revision to complete

Press Install Revision to complete

Things to Watch out For

  1. Firstly, I was unhappy about the sheer number of missing links everywhere I looked and lack of information generally. This is quite an important component for Umbraco because unless you are deploying to Azure and setting up Azure Staging as described in the link, you need something like this to be able to view your test site before going live.
  2. Secondly, it uses webservice technology and I have read warnings that large files may not transfer correctly and cause the process to crash. What can you do about this? Ensure your upload sizes are big enough on both sites, and transfer large files manually. It appears the Umbraco developers don’t know about how to reliably transfer large files using WCF, either by streaming or chunking the file into 64k blocks.
  3. I think the second process could be a lot easier, I don’t think my users are going to use it, because we don’t really want them logging onto the live site and accidentally making changes that then get overwritten (or risk transferring the wrong way).
  4. There is also a risk that certain data may not transfer and developer customisation is required to ensure this. This could be quite complex, especially for my customer, as they are using the Umbraco Hybrid Framework. Hopefully because they are using this and deploying deeper objects via Visual Studio, it might not be a problem, we will have to wait and see.
  5. Oh and then don’t get me started on the difficulties of getting the licence to install…

Maybe there is an opportunity for a product here that does a better job than this rather rough and ready product…

About Phil

I have been working as a software developer since 1983. This blog could have been called "From Fortran 77, C and Cobol to C# in 20 (not so) easy years", but it doesn't sound quite right somehow. Besides I'm talking about what's happened since 2003, not before!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Top Posts & Pages


Recent Posts

Recent Comments



  • Mike Cohn's Blog
  • Scott Hanselman's Blog
Be a Great Product Owner: Six Things Teams and Scrum Masters Need

Learn six ways effective product owners ensure their teams’ success. [...]

What Happens When During a Sprint

Succeeding with Scrum is easier when you know when and why to conduct each of the Scrum events during the sprint. [...]

What Are Agile Story Points?

Story points are perhaps the most misunderstood topic in agile. Story points are not based on just one factor--such as complexity, as is often mistakenly claimed. Instead, story points are based on a combination of factors. [...]

Don’t Equate Story Points to Hours

I’ve been quite adamant lately that story points are about time, specifically effort. But that does not mean you should say something like, “One story point = eight hours.” Doing this obviates the main reason to use story points in the... [...]

Epics, Features and User Stories

I've been getting more and more emails lately from people confused about the difference between "user stories", "epics" and "features." So I thought this month we'd return and cover some basic--but very helpful--territory by explaining those terms. First, the terms don't matter that much. These are not terms with important specific meanings like "pointer" to a programmer or "collateralized debt obligation" to whomever it is that's important. [...]

- Scott Hanselman
Use your own user @ domain for Mastodon discoverability with the WebFinger Protocol without hosting a server

Mastodon is a free, open-source social networking service that is decentralized and distributed. It was created in 2016 as an alternative to centralized social media platforms such as Twitter and Facebook. One of the key features of Mastodon is the use of the WebFinger protocol, which allows users to discover and access information about other users on the Mastodon network. WebFinger is a simple HTTP-based protocol that enables a user to discover information about other users or resources on the internet by using their email address or other identifying information. The WebFinger protocol is important for Mastodon because it enables… [...]

- Scott Hanselman
I got tired

I have been blogging here for the last 20 years. Every Tuesday and Thursday, quite consistently, for two decades. But last year, without planning it, I got tired and stopped. Not sure why. It didn't correspond with any life events. Nothing interesting or notable happened. I just stopped. I did find joy on TikTok and amassed a small group of like-minded followers there. I enjoy my YouTube as well, and my weekly podcast is going strong with nearly 900 (!) episodes of interviews with cool people. I've also recently started posting on Mastodon (a fediverse (federated universe)) Twitter alternative that… [...]

- Scott Hanselman
Using Home Assistant to integrate a Unifi Protect G4 Doorbell and Amazon Alexa to announce visitors

I am not a Home Assistant expert, but it's clearly a massive and powerful ecosystem. I've interviewed the creator of Home Assistant on my podcast and I encourage you to check out that chat. Home Assistant can quickly become a hobby that overwhelms you. Every object (entity) in your house that is even remotely connected can become programmable. Everything. Even people! You can declare that any name:value pair that (for example) your phone can expose can be consumable by Home Assistant. Questions like "is Scott home" or "what's Scott's phone battery" can be associated with Scott the Entity in the… [...]

- Scott Hanselman
JavaScript and TypeScript Projects with React, Angular, or Vue in Visual Studio 2022 with or without .NET

I was reading Gabby's blog post about the new TypeScript/JavaScript project experience in Visual Studio 2022. You should read the docs on JavaScript and TypeScript in Visual Studio 2022. If you're used to ASP.NET apps when you think about apps that are JavaScript heavy, "front end apps" or TypeScript focused, it can be confusing as to "where does .NET fit in?" You need to consider the responsibilities of your various projects or subsystems and the multiple totally valid ways you can build a web site or web app. Let's consider just a few: An ASP.NET Web app that renders HTML… [...]

- Scott Hanselman
A Nightscout Segment for OhMyPosh shows my realtime Blood Sugar readings in my Git Prompt

I've talked about how I love a nice pretty prompt in my Windows Terminal and made videos showing in detail how to do it. I've also worked with my buddy TooTallNate to put my real-time blood sugar into a bash or PowerShell prompt, but this was back in 2017. Now that I'm "Team OhMyPosh" I have been meaning to write a Nightscout "segment" for my prompt. Nightscout is an open source self-hosted (there are commercial hosts also like T1Pal) website and API for remote display of real-time and near-real-time glucose readings for Diabetics like myself. Since my body has an… [...]