Home / Guides / Getting started

Getting started

Continuous deployment might be overwhelming at first. This guide is here to help you set up your first Jaws Deploy project in minutes. Completing this guide will give you a general feel of the concepts and building blocks of Jaws Deploy.

0. Prerequisites

  1. For this guide, we will use Jaws Deploy Cloud - a fully managed installation of Jaws Deploy. If you don't have an account you can create one using this link: https://app.jawsdeploy.net/signup
  2. When your account is ready there should be a default Workspace created called "Main". You can see the current workspace in the app top bar. In this guide we'll use URLs that refer to the default workspace (they will contain /w/main).

1. Environments

You'll need at least one environment to deploy anything, but to get a better feel of why we need environments, let's create two.

  1. Go to https://app.jawsdeploy.net/w/main/environments
  2. Click the "Add new environment" button.
  3. Enter "Test" as the environment name and click "Add".
  4. Repeat the steps above and add a "Production" environment.

2. Machine

  1. You will need admin access to a server (Windows or Linux) where you can safely test your deployments. This server will execute some of the deployment logic and will receive the deployed packages from Jaws Deploy server. You can use your local PC, a local Virtual Machine (Hyper-V, VMWare or similar), a cloud VM (Azure VM, AWS EC2 or similar) or a physical server. The only requirement for this server is that it needs internet access (when using Jaws Deploy Cloud, which holds for this guide).
  2. Once you have server access, install the Jaws Deploy Agent on it. Here is a detailed guide: How to install Jaws Deploy Agent.
  3. Once your Agent is installed, head back to Machines list using the left menu, and check it appears on the list and that Connection column shows a success icon. You can click this icon to check the connection state.
  4. On the machine row click the "Edit" button and assign the environment "Test" to this machine.

3. Project

A project is the recipe for your deployment. We'll start simple with only 2 project steps. The first step will print some messages to the deployment log, second step will deploy a sample package to your machine (the one you created in step 2).

  1. Go to https://app.jawsdeploy.net/w/main/projects
  2. Click the "Add new project" button.
  3. Enter "Test" as the environment name and click "Add".
  4. Specify a name of your choice and hit "Create".
  5. After creation, you will automatically be taken to "Steps" section/tab of the new project. Click "Add step" button.
  6. Enter step name e.g. "Logging step" and as "Step type" pick "Run script". This type of step is the most basic step you can get in Jaws Deploy - it simply runs the specified PowerShell script on the machines affected by the deployment (also called: deployment targets). Click "Add" to confirm.
  7. What you will see is the step added to steps list on the left side, and a step editor form on the right. Scroll down to the very bottom of this editor and fill in "Script body" which prints out current machine IP and system date and time:
    $myIp = (Invoke-WebRequest ifconfig.me/ip).Content.Trim()
    $now = Get-Date
    Write-Host "Hello from $myIp it is $now here."
  8. Click "Save step" on the bottom of the form.
  9. We will not create the second step yet. First, we need to set up a package to be deployed.

4. Package feed and packages

Jaws Deploy is a deployment automation solution and as such its main job is to deploy things. Jaws can pull packages (the assets that are being deployed) either from external pre-configured feeds (e.g. your private NuGet Feed, TeamCity built-in feed etc.) or from the built-in feed. In both cases the package feed needs to contain a package for Jaws to pull it. We'll now manually upload a minimal demo-package to the built-in feed of your Jaws workspace. This is the simplest solution for a guide like this. In production you would push packages from your CI (continuous integration) platform to Jaws automatically after a new version of your software is built. For now let's continue with manual setup.

  1. Download our DeployDemo.1.0.0.zip package from https://jawsdownloads.blob.core.windows.net/demos/DeployDemo.1.0.0.zip
  2. Go to https://app.jawsdeploy.net/w/main/package-store
  3. Click "Choose file" below the sections explaining how to upload packages.
  4. Choose the DeployDemo.1.0.0.zip you downloaded in the first step and upload it by clicking "Upload package" below. A package named "deploydemo" should appear on the list.
  5. Now we can set up a project step to configure and deploy the package to your machine.

5. Project step #2 - deploy package

  1. Go back to https://app.jawsdeploy.net/w/main/projects and edit the demo project you created in step 3.
  2. Open the "Steps" tab and click "Add step".
  3. Specify a name of your choice and as "Step type" select "Deploy package". This is a more complex step which pulls packages from one of Jaws Deploy's package feeds and pushes them out to deployment targets. Confirm with the "Add" button.
  4. Scroll down to "Package details" section.
  5. Select "Feed" = "PackageStore" (this is the built-in package feed).
  6. Select "Package" = "deploydemo". Note that at this stage package version is not relevant. Package versions are resolved later when a release is created. This way a project step is re-usable by specifying only the package name.
  7. In the "Installation directory" specify a valid path where the package should be deployed. Do this on the machine where you installed the Agent.  E.g. C:\users\andy\jawsdemo
  8. We will perform a simple configuration transform to showcase configuration management and variables. If you unzip the DeployDemo zip file you'll find a single appsettings.json file which includes a few placeholders like #{user}. We'll make Jaws configure this file with variables. Scroll down to section "Replace variables in files" and enter one line in the text box below:
    appsettings.json
  9. The above setup instructs Jaws Deploy to replace any variables in the file appsettings.json, which is located at the root of the zip package.
  10. Click the "Save step" button to confirm all changes we've made.

6. Variables

  1. Still being on the Project page click "Variables" tab (just right to the "Steps" tab) on top.
  2. Under "Project variables" click "Add variable".
  3. A modal will appear. Create a variable called user of type "Text". Please note that the variable name matches the #{user} placeholder in the appsettings.json file.
  4. The new variable appears in the table - on the right click the "Add value" button. Create 2 values - one for each of our environments (Test and Production). Enter "Variable value" = "andy" and under "Value scope" choose Environments, then highlight Test and hit "OK".
  5. Repeat the step above and create another value for variable user - e.g. "Variable value" = "joe"and highlight Production in the Environments filter.

7. Release 📦

  1. We are ready to create a release!  
  2. Click "Create release" on top of the project page (this button is available no matter which tab you are on).
  3. Jaws Deploy will suggest version 0.0.1 of the release and it will also suggest deploying deploydemo package at version 1.0.0 (the only available one). Confirm this selection by clicking the "Create" button below.

    Note: Here we create the release manually. In typical applications releases are triggered automatically via API from a build server, after software has been built and packages are ready to be deployed.

    Note: the release has taken a snapshot of the variables used in this project, so even if you change the variable value now and release, Jaws Deploy will still use the value that was present at the time release was created.

8. Deploy 🚀

  1. Finally we can push the code and package to your machine.
  2. After creating the release you will be taken to the release page.
  3. Click the big green "Deploy" button on top.
  4. You will be presented with a selector of environments to which the project should be deployed. Note: it is possible to select more than one.
  5. Select "Test" environment and hit the big "Deploy" button on the bottom.
  6. You will be taken to a deployment page with a live-preview of all executed steps and deployment logs. If everything is configured correctly you should see following log entries:
    ...
    Hello from 112.112.112.112 it is 09/10/2025 10:51:17 here.
    ...
    Copying files C:\JawsDeploy\Agent\Work\...\deploydemo.1.0.0\* to C:\users\andy\jawsdemo
  7. The log above should show the IP of your machine (where the deployment script was executed) and its system date and time. At the installation directory you should find one file (which was included in the DeployDemo.1.0.0.zip) named appsettings.json. If you inspect the contents of this file, you will find the configured variable value applied to the #{user} placeholder.{
    "ConnectionString": "server=#{server};user=andy;password=#{password}"
    }

9. Wrapping up

  1. You should now have a basic understanding of how Jaws Deploy projects, machines, steps, variables, environments, releases and deployments work.
  2. We've shown that you can scope machines to environments. If you had 2 machines targeting Test environment then both steps would run twice - once for every machine (either in series or parallel - depending on your choice).
  3. If you chose Production environment now when deploying the same release - Jaws Deploy will prevent you from doing that. The reason is that there are no machines which target Production environment at the moment.
  4. We've also shown that files included in packages can be modified during deployment. There are many more options to transform files in Jaws Deploy and a lot more ways you can structure and scope variables. What's important for this demo is that Jaws Deploy picked the Test environment-scoped variable value (andy) to be applied to the settings file when deploying to Test environment. If you deployed to Production - the settings file would include the Production-scoped value joe.
  5. You also tested out multiple steps of different types, package feed and adding new machines.
  6. If you feel like you still need to learn more about the core of Jaws Deploy - try out our Core Concepts page. And if you feel like taking a deeper dive then read more of our Guides.