# Before running

### Running the apps through Visual Studio

In case you want to run or debug <mark style="color:blue;">**Harmony**</mark> from Visual Studio, add all the web application projects to the **startup projects** list by right clicking the solution and selecting **Configure Startup Projects..**

<figure><img src="https://4051864592-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9FS3EgJIfGPiZJAR9LaG%2Fuploads%2F13Xbp722rcY1OSxUNB9V%2Fstartup-projects.png?alt=media&#x26;token=a685deb0-3687-49f2-b356-8466b57df2d8" alt=""><figcaption></figcaption></figure>

Set the Action to Start for the following projects:

* [x] Harmony.ApiGateway
* [x] Harmony.Api
* [x] Harmony.SignalR
* [x] Harmony.Client
* [x] Harmony.Automations
* [x] Harmony.Notifications
* [x] Harmony.Integrations.SourceControl

Before starting Harmony, complete all the following required steps:

### Required steps before running Harmony

* [x] For local development, you have installed all the required software and configured the connection strings as described in the [installations](https://chsakell.gitbook.io/harmony/configuration/dependencies/installations "mention") guide.
* [x] You have an SQL Server or a PostgreSQL instance and you have configured **HarmonyConnection** connection string in <mark style="color:blue;">Harmony.Api</mark> and **HarmonyJobsConnection** connection string in <mark style="color:blue;">Harmony.Notifications</mark> & <mark style="color:blue;">Harmony.Automations</mark> respectively. Migrations can be run either manually or let the projects create the databases on start. Read the [sql-server](https://chsakell.gitbook.io/harmony/configuration/dependencies/databases/sql-server "mention") or the [postgresql](https://chsakell.gitbook.io/harmony/configuration/dependencies/databases/postgresql "mention") guides for more details.
* [x] You have a **MongoDB Server** instance running and you have configured the MongoDB:ConnectionUI property in the **appsettings.json** for <mark style="color:blue;">Harmony.Automations</mark> project.
* [x] You have configured the **gRPC** communication between the microservices as described in the [gRPC](https://chsakell.gitbook.io/harmony/configuration/dependencies/grpc) section.
* [x] You have a RabbitMQ instance running and you have configured the **BrokerConfiguration** setting in all required projects in their **appsettings.json** file.
* [x] **Optional**: You have a Redis instance up and running and you have configured the **RedisConnectionString** property in the <mark style="color:blue;">Harmony.SignalR</mark> project's appsettings.json file.&#x20;
* [x] **Important!** You have set the **gatewayUrl** property in the <mark style="color:blue;">**Harmony.Client**</mark> project's **www** folder, in the appsettings.json file, equal to <mark style="color:blue;">Harmony.ApiGateway</mark> host URL
* [x] You have set the *AppEndpointConfiguration:FrontendUrl* in Harmony.Api. This will be used for email templates in order to configure any links to the front.

{% content-ref url="docker" %}
[docker](https://chsakell.gitbook.io/harmony/configuration/docker)
{% endcontent-ref %}

{% content-ref url="../guide/workspaces" %}
[workspaces](https://chsakell.gitbook.io/harmony/guide/workspaces)
{% endcontent-ref %}
