# 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="/files/MOkCKYbzknkzjJr4iGM3" 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](/harmony/configuration/dependencies/installations.md) 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](/harmony/configuration/dependencies/databases/sql-server.md) or the [PostgreSQL](/harmony/configuration/dependencies/databases/postgresql.md) 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](/harmony/configuration/dependencies/grpc.md) 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="/pages/OSpYXnZFhVyd7wYqNS8m" %}
[Docker](/harmony/configuration/docker.md)
{% endcontent-ref %}

{% content-ref url="/pages/ZVRbbONGbRep8XVyqaz6" %}
[Workspaces](/harmony/guide/workspaces.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chsakell.gitbook.io/harmony/configuration/before-running.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
