> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to host a Nuxt application (Nitro)

# How to Host Nuxt Applications on Square Cloud

Nuxt utilizes an integrated rendering engine called **Nitro** to compile and prepare the application for production. To host it on Square Cloud, you only need to generate the project build, point to the correct entry file, and configure the system's default port.

---

## 1. Running the Production Build

Before deploying your files to Square Cloud, the application must be compiled so that all Vue and TypeScript code is optimized.

Open the terminal at the root of your local project and run the command:
```bash
npm run build
```

This command will trigger Nitro, creating a hidden folder named **`.output/`** at the root of your project. It is precisely inside this folder that all your production server code resides.

---

## 2. Defining the Main File (Main)

Nuxt applications in production do not use a common file like `index.js` or `server.js` at the root. The entry point generated by the compiler is located within the output structure.

*   **File Path:** `.output/server/index.mjs`

In your `squarecloud.app` configuration file (or directly in the Square Cloud Dashboard form), you must define the field corresponding to the main file exactly like this:
```text
MAIN=.output/server/index.mjs
```

---

## 3. What to Include in the Upload File (.zip)?

To ensure a fast and clean deployment, create a `.zip` file containing only the artifacts generated for production execution.

*   **What to INCLUDE:** The entire **`.output/`** folder (make sure your zip tool does not ignore folders starting with a dot), the **`package.json`** file, and your lockfile (**`package-lock.json`** or `yarn.lock`).
*   **What to EXCLUDE:** Never include the `node_modules` folder or the `.nuxt/` folder (used only in development mode). Square Cloud will perform a clean and isolated installation of the required dependencies directly on the server.

---

## 4. Troubleshooting Common Issues

*   **"The site took too long to respond" Error:** If you try to access your application's URL and encounter this timeout message, this **is usually directly linked to the site using the wrong port**. By default, Nuxt's Nitro engine attempts to open the server on port `3000`. Since Square Cloud's infrastructure expects and routes external traffic exclusively through port `80`, the network cannot find your application, causing the browser to give up after waiting for a while. To fix this, review your code and ensure that the `PORT` variable is set exactly to `80`.
```