Multip part web site; or... two sites?

My project consists of a Web API, as well as an angular 2 front end.
This means there are two webs to deploy; the client front end Single Page Application as well as the Web API.

I’ve thus far configured octopus to ‘Deploy an IIS Web Site’, to deploy the web API; works like a champ.

Now i’ve got to additionally deploy the front end.

My problem is, how to configure this? I could create and deploy a second package, but I’d rather not do that; I don’t want to have to keep track of (possibly separate?) package version numbers: i.e. a separate package for the API and another one for the front end.

I can create a single package, with the folders ‘Web API’ and ‘Front End’, and then point the first step to the 'Web API ’ folder in the package, but how do i then get the tentacle to set up another web pointed to the ‘Front End’ folder?


I guess i have another part to this question.

Included in the package that i want to create is a ‘sql’ folder, which i will be running schema update scripts to the database which backs the web api.

Do i make another step? I don’t want to download the package again!



Thanks for getting in touch! Whilst it is possible and an option to have all three parts of the website deployment (Front, Back, SQL) running from the same package, we do not recommend this.

Generally, we would recommend splitting these up into separate packages and steps as managing and maintaining the deployment becomes much easier in Octopus. We designed our processes around this kind of separation so we will recommend this approach where possible.

If you were to use one single package for everything, you will be required to either create custom scripts that manage the configuration and setup for the Front-End, Back-End and SQL updates, all placed inside the package or script step. You could also find custom step templates that will perform the functions you need.
There will not be any functionality issues caused by using a single package for all of this and it is an option if you desire. It will simply require you to have more manual scripts/step templates to handle the deployment.

Let me know what you think.

Best regards,

i must say that being able to just specify a web application deploy is much nicer than having to stop the pools, replace the folder and then restart the pools.

I think i shall use the three-package solution, rather than a single one.

Though the folder structure you end up with is a bit awkward:


  • rev XXX
  • rev YYY

  • BackEnd
  • rev XXX
  • rev YYY

  • Sql
  • rev XXX
  • rev YYY

Especially since theoretically, all the packages should be always deployed in lock step.

Be that as at may, not having to futz with IIS is quite a strong motivator.