> ## 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.

# Primeros pasos en Square Cloud con Node.js

> Aprende a comenzar en Square Cloud con Node.js

## 🚀 Introducción

* Antes de comenzar, asegúrate de tener Node.js y npm instalados en tu sistema. Si aún no los tienes, puedes descargarlos desde el [sitio web oficial de Node.js](https://nodejs.org/).
* A continuación, deberás crear una cuenta en Square Cloud, lo cual puedes hacer a través de la [página de inicio de sesión](https://squarecloud.app/es/signup). Puedes usar tu correo electrónico, GitHub o ambos para crear la cuenta.
* Por último, necesitas tener un plan de pago activo en tu cuenta. Puedes ver nuestros planes y adquirir uno según tus necesidades [aquí](https://squarecloud.app/es/pricing).

## ⚙️ Configuración del archivo squarecloud.app

<Note>
  Si estás subiendo tu aplicación a través del sitio web de Square Cloud, puedes ignorar esta sección. El sitio crea automáticamente el archivo de configuración `squarecloud.app` por ti.
</Note>

<Card title="Más información: cómo crear el archivo de configuración para Square Cloud." icon="link" href="https://docs.squarecloud.app/es/getting-started/config-file">
  El archivo squarecloud.app es un archivo de configuración que se usará para
  configurar tu aplicación; servirá para definir el nombre, la descripción,
  la versión, el archivo principal, entre otras cosas.
</Card>

## 📄 Archivos requeridos

<Tabs>
  <Tab title="JavaScript">
    * Si el campo `START` no está definido en el archivo de configuración, Square Cloud ejecutará por defecto `node` con opciones de optimización y parámetros específicos. Si el campo `START` está definido, el valor que contenga se ejecutará directamente. Para obtener más información sobre los parámetros del archivo de configuración, visita [parámetros de configuración](https://docs.squarecloud.app/es/getting-started/config-file#configuration-parameters).
  </Tab>

  <Tab title="TypeScript">
    * Si el campo `START` no está definido en el archivo de configuración, Square Cloud ejecutará por defecto `npx tsx MAIN` para compilar y ejecutar el archivo TypeScript principal especificado en `MAIN`. Si el campo `START` está definido, el valor que contenga se ejecutará directamente. Para obtener más información sobre los parámetros del archivo de configuración, visita [parámetros de configuración](https://docs.squarecloud.app/es/getting-started/config-file#configuration-parameters).
  </Tab>
</Tabs>

* Si la carpeta `node_modules` no existe, Square Cloud ejecutará `npm install --no-package-lock --no-audit --no-fund` para instalar las dependencias y limpiar la carpeta `.npm`.

## 🖥️ Preparando el proyecto

### 📁 Archivos de configuración esenciales

Al preparar tu proyecto de Node.js para el deploy en Square Cloud, asegúrate de incluir el archivo de configuración (`squarecloud.app/.config`) y los archivos esenciales de tu aplicación dentro de un archivo zip.

<Warning>El archivo de configuración (`squarecloud.app/.config`) debe ubicarse en la raíz del archivo zip. De lo contrario, Square Cloud no podrá encontrarlo durante el deploy.</Warning>

#### 🗑️ Archivos a excluir antes de subir

* `node_modules`: Esta carpeta no necesita subirse, ya que se recreará durante la instalación en producción.
* `package-lock.json`: Este archivo no es necesario, ya que el entorno de producción instalará las dependencias con base en `package.json`.

### 🤔 ¿Por qué excluir estos archivos?

Hay varias razones para excluir `node_modules` y `package-lock.json` antes de subir tu proyecto:

1. **Consistencia de la instalación:** No subir `node_modules` garantiza que las dependencias sean instaladas por el entorno de producción, resultando en un build consistente y libre de discrepancias del sistema local.

2. **Instalaciones actualizadas:** El entorno de producción instalará las versiones compatibles más recientes de las dependencias listadas en `package.json`, proporcionando un inicio limpio para tu aplicación.

3. **Reducción del tamaño de subida:** No incluir estas carpetas reduce el tamaño del archivo subido, acelerando el proceso de subida y haciendo el deploy más eficiente.

Al hacer esto, te aseguras de que tu aplicación de Node.js esté óptimamente preparada para el alojamiento en Square Cloud.

### 📄 Archivos requeridos

Se necesitan tres archivos para alojar tu proyecto de Node:

* [squarecloud.app/.config](https://docs.squarecloud.app/es/getting-started/config-file)
* mainFile.js/.ts (Ejemplo de archivo principal)
* [package.json](./how-to-create-your-package-json) (Archivo de dependencias)

<Note>
  Square Cloud admite `TypeScript` de forma nativa, ejecutando tu proyecto a través de
  ts-node, pero siempre se recomienda compilar a `JavaScript`, ya que somos
  una plataforma de producción.
</Note>

## 💡 Solución de problemas

<AccordionGroup>
  <Accordion title="El archivo principal es inválido o está corrupto" icon="file" iconType="solid">
    Este error ocurre cuando el archivo definido como "main" para tu aplicación en el
    archivo de configuración no existe, está escrito incorrectamente o la ruta
    es incorrecta. Si tu archivo principal está dentro de una carpeta, por
    ejemplo, debes especificar `folder/file.js`.
  </Accordion>

  <Accordion title="Memoria insuficiente" icon="memory" iconType="solid">
    La cantidad mínima de RAM requerida para alojar un bot es de 256MB y para
    un sitio/API es de 512MB. Sin embargo, dependiendo del tamaño y la complejidad de
    tu aplicación, puede ser recomendable asignar una mayor cantidad de RAM para
    evitar que tu aplicación se quede sin memoria y se bloquee.
  </Accordion>
</AccordionGroup>

## 📤 Cómo alojar tu proyecto

Ahora que has preparado todos los archivos para tu proyecto de Node.js, el siguiente paso es subirlos a Square Cloud y poner tu aplicación en línea. Hay varias formas de subir los archivos, pero cubriremos dos: mediante el Dashboard o mediante la CLI.

### A través del panel

<Steps>
  <Step title="Accede a la página de subida">
    Accede a la [página de subida](https://squarecloud.app/es/dashboard/new) y sube el archivo zip de tu proyecto.
  </Step>

  <Step title="Configura tu entorno">
    Después de subir tu zip, deberás configurar el nombre, el archivo principal o el entorno de ejecución y otros ajustes de tu proyecto.\
    Si estás subiendo un proyecto web, asegúrate de seleccionar "Publicación Web" y de definir un subdominio para tu proyecto.
  </Step>

  <Step title="Despliega tu proyecto">
    Por último, haz clic en el botón "Deploy" para alojar tu proyecto en Square Cloud.\
    Tras el despliegue, puedes monitorear el estado y los logs de tu proyecto desde el panel.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Subiendo aplicación a Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### A través de la CLI

Para usar este método, necesitas crear un archivo de configuración llamado `squarecloud.app` en el directorio raíz de tu proyecto. Este archivo contendrá la configuración necesaria para tu proyecto.

<Card title="Aprende más sobre: cómo crear el archivo de configuración para Square Cloud." icon="link" href="/es/getting-started/config-file">
  El archivo squarecloud.app es un archivo de configuración que se usará para configurar tu aplicación; se utilizará para definir tu entorno.
</Card>

<Steps>
  <Step title="Instala la CLI">
    Primero, necesitas tener la CLI instalada en tu entorno. Si aún no la tienes, ejecuta el siguiente comando en tu terminal:

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

    Si ya la tienes, te recomendamos actualizarla. Para ello, ejecuta el siguiente comando en tu terminal:

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

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

  <Step title="Autentícate">
    Ahora, para autenticarte y usar otros comandos de la CLI, encontrarás tu clave de autorización [aquí](https://squarecloud.app/es/account/security) haciendo clic en "Request API Key". Después de obtener tu clave de autorización, ejecuta el siguiente comando:

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

  <Step title="Sube tu proyecto">
    Por último, para desplegar tu aplicación en Square Cloud usando la CLI, necesitas ejecutar el siguiente comando:

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

    O si creaste el zip manualmente, puedes usar:

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

## Contáctanos

Si continúas enfrentando **dificultades técnicas**, nuestro **equipo de soporte especializado** está disponible para ayudarte. [**Contáctanos**](https://squarecloud.app/es/support) y estaremos encantados de ayudarte a resolver cualquier problema.
