I want to have a Ghost blog deployed in Azure that has a built-in CI (Continuous Integration). In this post, I will show you how to do exactly that.


  1. You have an Azure account
  2. You have a Git remote repository. For this post, I'm using BitBucket.
  3. You have an SMTP credentials for your email provider

Step 1: Get the latest Ghost

Ghost will not work without the certain configurations for Azure. Good thing you can get the latest with the Azure settings through felixrieseberg/Ghost-Azure.

git clone git@github.com:felixrieseberg/Ghost-Azure.git 

Step 2: Push to Remote

Before you do some tweaking, let's try to test it out in Azure first. But since we want a CI in place, we'll push this code to our git remote repo. In our case, we pushed the code in Bitbucket.

Step 3: Create an Azure Website

I won't be putting some screenshots for now. I'll try to follow it up next time

  1. Go to Azure and create an Azure Website, preferably Basic: 1 Small tier.
  2. Select Deployment source
  3. Click setup and select Bitbucket
  4. Login and authorize Azure
  5. Select the Ghost project from your Git Remote in Step 2
  6. Select the branch that will trigger the deployment (Ex. Master)
  7. Click ok

While waiting for the deployment to finish, setup your Env variables through AppSettings.

  1. In Azure, go to Application settings
  2. Setup the SMTP credentials by filling the keys emailService, emailUsername, and emailPassword.

After the deployment is complete, you're DONE! You can edit your Ghost site and simply push it to your Git remote repo and let the CI handle all the deployments.

Happy blogging!