﻿# Platform Installation


The Particular Service Platform may be installed on either a server, for use in production environments, or a workstation, during development. A [portable version](platform-sample-package.md) is also available, for use in samples or demonstrations.

Note that, for the purposes of this document, shared testing environments may be treated in the same way as production environments.

## Installation

Platform components are deployed separately, and the technique used varies depending on the component being deployed.

### NServiceBus

NServiceBus is a NuGet package that is used by the development team to create endpoints that are [hosted](/nservicebus/hosting/index.md) in nearly any .NET compatible process. For instance:

- Hosted in a console application:
  - Running in a terminal or as a batch job
  - Running as a Windows service
  - Running as a Linux daemon, in or out of a container
- Hosted in an ASP.NET or similar web application
- Hosted as a function, e.g. Azure Functions / AWS Lambda
- Hosted in a WPF or similar Windows application

As a result, NServiceBus endpoints are deployed using whatever tools are applicable to the hosting model being used.

### ServiceControl

ServiceControl is deployed as [instances of different types](/servicecontrol/index.md#servicecontrol-instance-types). Each instance type can be deployed using:

#### ServiceControl Management utility (Windows only)

ServiceControl Management utility is a Windows application which can be found under the ServiceControl section on the [downloads page](https://particular.net/downloads).

This application is used to deploy and manage one or more instances of any of the ServiceControl instance types as Windows services.

#### PowerShell (Windows only)

[A PowerShell module](/servicecontrol/servicecontrol-instances/deployment/powershell.md) is provided to deploy any of the ServiceControl instance types as a Windows service.

#### Containers (Linux only)

Container images are pushed to [Docker Hub](https://hub.docker.com/u/particular) creating the ability to deploy any of the ServiceControl instance types on a Linux and [OCI compatible](https://opencontainers.org/) container host, e.g. Docker or Kubernetes.

#### Platform Sample NuGet package

ServiceControl, along with ServicePulse, can be hosted in Visual Studio, with no installation required, using the [Platform Sample package](/platform/platform-sample-package.md). This is useful for presentations, for providing samples, or to demonstrate usage of the Platform within an existing solution.

### ServicePulse

ServicePulse is a single page application which can be deployed in multiple ways:

#### Integrated in ServiceControl

ServiceControl version 6.13 and above includes [integrated ServicePulse](/servicecontrol/servicecontrol-instances/integrated-servicepulse.md) and can host ServicePulse from a ServiceControl [Error instance](/servicecontrol/servicecontrol-instances/index.md) host.

#### Separate from ServiceControl

ServicePulse can be installed as a separate application from ServiceControl, although it still must be connected to a ServiceControl Error instance to function.

##### Windows service

ServicePulse can be installed using a dedicated [installation package](https://particular.net/downloads), which deploys ServicePulse as a Windows service host.

ServicePulse can be installed more than once on a single machine, with each instance listening on its own port. This is done by [specifying appropriate arguments during installation](/servicepulse/installation.md#installation-available-installation-parameters).

##### Container (Linux only)

A container image for ServicePulse is pushed to [Docker Hub](https://hub.docker.com/u/particular) creating the ability to deploy ServicePulse on a Linux and [OCI compatible](https://opencontainers.org/) container host, e.g. Docker or Kubernetes.

##### Extracted

Using the [installation package](https://particular.net/downloads), ServicePulse can be [extracted as a set of HTML, JavaScript, and CSS files](/servicepulse/install-servicepulse-in-iis.md#basic-setup-detailed-steps) and subsequently deployed to any web server.

#### Platform Sample NuGet package

ServicePulse, along with ServiceControl, can be hosted in Visual Studio, with no installation required, using the [Platform Sample package](/platform/platform-sample-package.md). This is useful for presentations, for providing samples, or to demonstrate usage of the Platform within an existing solution.

#### Switch between ServiceControl Error instances

When multiple ServiceControl Error instances are deployed, ServicePulse can be configured to switch between instances via the [ServicePulse UI connection management screen](/servicepulse/host-config.md#configuring-connections-via-the-servicepulse-ui).
