> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started on Square Cloud with C#

> Learn how to get started on Square Cloud with C#

## 🚀 Introduction

* Before getting started, ensure that .NET (Dotnet) is installed on your system. If you don't have it yet, you can download it from the [official Dotnet website](https://dotnet.microsoft.com/en-us/download).
* Next, you will need to create an account on Square Cloud, which can be done through the [login page](https://squarecloud.app/en/signup). You can use your email, GitHub, or both to create the account.
* Finally, you need to have an active paid plan on your account. You can view our plans and purchase one according to your needs [here](https://squarecloud.app/en/pricing).

## ⚙️ squarecloud.app file configuration

<Note>
  If you are uploading your application via the Square Cloud website, you can ignore this section. The site automatically creates the `squarecloud.app` configuration file for you.
</Note>

<Card title="Learn more: how to create the configuration file for Square Cloud." icon="link" href="https://docs.squarecloud.app/en/getting-started/config-file">
  The squarecloud.app file is a configuration file that will be used to
  configure your application; it will serve to define the name, description,
  version, main file, among other things.
</Card>

## 📄 Required Files

* **project/project.csproj** (Example of main file).
  <Note>In the example above, the main application file is inside a folder. If your configuration file is also inside a folder, you need to define the path in the `MAIN` field, for example: `MAIN=folder/file.csproj`</Note>
* [squarecloud.app](https://docs.squarecloud.app/en/getting-started/config-file) (file containing Square Cloud configuration).

## ▶️ How to start your application

* If the `START` field is not defined in the configuration file, Square Cloud will by default use the `restore & run` process to start your application. If the `START` field is defined, the value in it will be executed directly. For more information about configuration file parameters, visit [configuration parameters](https://docs.squarecloud.app/en/getting-started/config-file#configuration-parameters).

* Square Cloud uses `dotnet restore` to restore project dependencies and `dotnet run --project MAIN` to compile and run the project specified in `MAIN`.

## 🖥️ Preparing the project

Before hosting your project on Square Cloud, first check if the project files are properly configured for hosting.

<Warning>The configuration file (`squarecloud.app/.config`) must be located at the root of the zip file. Otherwise, Square Cloud will not be able to find it during deploy.</Warning>

## 📤 How to host your project

Now that you have prepared all the files for your C# project, the next step is to upload them to Square Cloud and put your application online. There are several ways to upload, but we will cover two: via Dashboard or via CLI.

### Via dashboard

<Steps>
  <Step title="Access the Upload Page">
    Access the [upload page](https://squarecloud.app/en/dashboard/new) and upload your project zip file.
  </Step>

  <Step title="Configure Your Environment">
    After uploading your zip, you will need to configure the name, main file or runtime environment and other settings for your project.\
    If you are uploading a web project, make sure to select "Web Publication" and set a subdomain to your project.
  </Step>

  <Step title="Deploy Your Project">
    Finally, click on the "Deploy" button to host your project on Square Cloud.\
    After deployment, you can monitor your project's status and logs from the dashboard.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Uploading application to Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Via CLI

To use this method, you need to create a config file named `squarecloud.app` in the root directory of your project. This file will contain the necessary configuration for your project.

<Card title="Learn more about: how to create the configuration file for Square Cloud." icon="link" href="/en/getting-started/config-file">
  The squarecloud.app file is a configuration file that will be used to configure your application; it will be used to define your environment.
</Card>

<Steps>
  <Step title="Install the CLI">
    First, you need to have the CLI installed in your environment. If you don't have it yet, run the following command in your terminal:

    ```
    npm install -g @squarecloud/cli
    ```

    If you already have it, we recommend updating it. To do this, run the following command in your terminal:

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS, and WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Authenticate">
    Now, to authenticate and use other CLI commands, you will find your authorization key [here](https://squarecloud.app/en/account/security) by clicking on "Request API Key". After obtaining your authorization key, run the following command:

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="Upload Your Project">
    Finally, to deploy your application to Square Cloud using the CLI, you need to run the following command:

    ```bash theme={null}
    squarecloud upload 
    ```

    Or if you created the zip manually, you can use:

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## Contact us

If you continue facing **technical difficulties**, our **specialized support team** is available to assist you. [**Contact us**](https://squarecloud.app/en/support) and we'll be happy to help you resolve any issue.
