Header

Deploying to IIS for Windows Server with DeployHQ

Deploying to IIS on Windows Server (or any other Windows solution) is very simple with DeployHQ. Let's go over the setup steps!

Setting up your project

Head to the Projects screen in DeployHQ, then click the New Project button to get started.

You'll be prompted to enter a name for your project, then select where your repository is hosted.

New Project

Next, click Create project and you'll be taken to a screen where you can log in with your repository hosting account to authorise access and then choose your repository.

Setting up your Windows Server server

Once you've configured your repository, you'll need to connect to your Windows Server server.

Here, you may need to perform some additional set up so that you can ensure that DeployHQ can connect to your server through SSH. To do this, you'll need to set up OpenSSH. If you already have SSH connectivity set up for your server, you can skip this step. Otherwise, you can feel free to follow the installation guide offered by Microsoft to install OpenSSH on your server.

Once SSH connectivity can be established to your server, you should be ready to connect your server to DeployHQ, and set up your deployment pipeline. To do so, head to Servers & Groups, and click the New Server button at the top of the screen. If you've just added your repository, you will have been taken to this page automatically.

Start by entering a name, and choosing SSH/SFTP as the protocol:

Strattic

Next, enter your server IP or URL address as the hostname, your port (normally port 22), your username and password. In the case of this guide, we will be using AWS Lightsail to host our Windows Server machine, but most providers and local solutions should have a very similar setup. For this VPS, its details can be found in the Lightsail dashboard when checking the server details:

IIS Lightsail details

Once the above is added, you can enter a deployment path (where you want files to be placed on the server). In this case, we recommend adding the full path to your deployment folder to the DeployHQ server configuration, as issues might arise if the drive is not specified in this step.

The above folder should be where your IIS is configured to pull your server files from, as this will allow you to have your deployments automatically update your webserver files without the need to perform any additional file movement after the deployment is completed.

In case you need to perform additional steps, such as transferring config files to your server during deployment time, or any SSH commands, such as iisreset, you can do them directly during your DeployHQ deployment.

Next, within Deployment options, you can choose to automatically deploy your server and, if you're only deploying files from a certain directory in your repository, enter a Deployment subdirectory.

Pressable - deployment options

If, for example, you just want to deploy your WordPress theme folder, you'll enter the path to the theme. If you only keep the theme in version control repository, you can leave it blank.

Click Create Server to finish, then you can proceed to start your first deployment.

Run your first deployment

By default, DeployHQ will upload the whole repository to your server on the first deployment, because there is no previously deployed commit to compare to.

If your files are already on your server though and up to date with the latest commit, you can follow this guide to skip that first deployment:

Otherwise, just follow this guide to start your first deployment, then after the first deployment, only files that have changed will be uploaded in future.

That's it! You've now set up and run your first deployment to your IIS webserver, and your future changes will be uploaded for you automatically, or at the simple click of a button.

Further reading

DeployHQ has a number of very useful features to help with your deployments in general that you might wish to find out more about:

  • Compiling assets and javascript with the Build pipeline
  • Running commands on your server with SSH commands
  • Stop certain files from being uploaded in deployments using Excluded files
  • Keep important files safely away from your repository using Config files
  • Keep your team in the loop and run other useful tasks during a deployment with our Integrations
Tree

Proudly powered by Katapult. Running on 100% renewable energy.