Skip to main content

¿Qué es el archivo de configuración?

El archivo de configuración le indica a Square Cloud cómo ejecutar tu aplicación: qué archivo iniciar, cuánta memoria reservar, qué versión del runtime usar y, para un sitio web, qué subdominio publicar. Es un archivo de texto plano con un par KEY=VALUE por línea.
squarecloud.app

Creando el archivo de configuración

Crea un archivo llamado squarecloud.app o squarecloud.config en la raíz de tu proyecto. Los dos nombres funcionan igual. Cuando subes un zip, el archivo debe estar en el nivel superior del zip, no dentro de una subcarpeta, o el deploy falla con MISSING_CONFIG.
En macOS, recomendamos el nombre squarecloud.config.
La extensión de VS Code autocompleta cada una de las claves de abajo y subraya los valores inválidos mientras escribes.

Parámetros de configuración

MEMORY, VERSION y DISPLAY_NAME siempre son obligatorios. MAIN es obligatorio salvo que definas RUNTIME. Los parámetros editables se pueden cambiar en el dashboard después del deploy. Cambiar un parámetro no editable requiere volver a subir la aplicación.

MAIN

El archivo que inicia tu aplicación, relativo a la raíz del proyecto.
  • La extensión del archivo elige el runtime: .js se ejecuta en Node.js, .ts en TypeScript, .py en Python, y así sucesivamente.
  • El archivo debe existir en tu subida y no puede estar vacío.
  • Hasta 32 caracteres: letras, dígitos, _, ., / y -, sin espacios.
Si falta MAIN (sin RUNTIME), falla con MISSING_MAIN; un archivo que no existe, no tiene extensión o no cumple las reglas anteriores falla con INVALID_MAIN.

MEMORY

La RAM reservada para tu aplicación, en megabytes. También define las vCPUs y el ancho de banda de tu aplicación.
El valor debe ser al menos el mínimo para tu tipo de proyecto, y no más que la RAM que aún tienes libre en tu plan. De lo contrario, el deploy falla con INSUFFICIENT_MEMORY.

VERSION

La versión del runtime: recommended o latest. Cualquier otro valor, incluido un número de versión exacto, hace fallar el deploy con INVALID_VERSION.
Usa recommended salvo que necesites una función que solo tiene la versión más nueva. Las versiones detrás de cada valor aparecen en la tabla de versiones de los runtimes.

DISPLAY_NAME

El nombre que se muestra en el dashboard, la CLI y la API.
Hasta 32 caracteres: letras sin acentos, dígitos, espacios, - y _. Cualquier otra cosa, como letras con acento o emojis, falla con INVALID_DISPLAY_NAME.

DESCRIPTION

Una descripción corta de la aplicación, de hasta 280 caracteres (INVALID_DESCRIPTION si la supera).

AUTORESTART

Reinicia la aplicación automáticamente después de un fallo. Acepta true o false, y por defecto es false, así que actívalo en los bots y en todo lo que deba mantenerse en línea.
Un reinicio automático solo ocurre cuando se cumplen todas estas condiciones:
  • La aplicación terminó con el estado 1, el código de salida habitual de un error no controlado en Node.js y Python.
  • Llevaba al menos 60 segundos en ejecución, así que una app que se cae justo al arrancar no se reinicia en bucle.
  • No se ha reiniciado automáticamente en la última hora.
  • Los logs no muestran un error que un reinicio no puede corregir: un token de bot inválido, un módulo que falta, un error de sintaxis o de tipos de TypeScript, o una instalación de dependencias fallida.
Un reinicio mantiene la app en línea ante un error transitorio, pero el bug de fondo todavía necesita una corrección en tu código. Consulta también el artículo del centro de ayuda sobre el reinicio automático.

SUBDOMAIN

Publica la aplicación como un sitio web en https://<subdomain>.squareweb.app.
  • Hasta 63 caracteres: letras, dígitos y guiones, sin empezar ni terminar con un guion. El nombre se guarda en minúsculas.
  • Un nombre que ya está en uso, reservado (como admin o api) o inválido falla con INVALID_SUBDOMAIN.
  • Un sitio web necesita más RAM que un bot: consulta la RAM mínima.
  • Tu servidor debe escuchar en el puerto 80 y en el host 0.0.0.0 (consulta el sitio web no carga).
Decide en la primera subida si la aplicación es un sitio web. En un sitio web puedes cambiar el subdominio después, pero no puedes quitarlo (CANNOT_SET_SUBDOMAIN). Una aplicación desplegada sin SUBDOMAIN no puede convertirse en un sitio web: súbela de nuevo como una aplicación nueva con SUBDOMAIN definido.
Para servir el sitio en tu propio dominio, consulta cómo configurar tu propio dominio en el centro de ayuda.

RUNTIME

Define el runtime de forma explícita, en lugar de deducirlo de la extensión de MAIN. Un valor desconocido falla con INVALID_RUNTIME.
Con RUNTIME definido puedes omitir MAIN. En ese caso, define también START: la mayoría de los runtimes inician la aplicación ejecutando el archivo MAIN.

START

Un comando de inicio personalizado. Reemplaza el comando por defecto, que ejecuta tu archivo MAIN.
  • Hasta 256 caracteres (INVALID_START si los supera).
  • Las dependencias se siguen instalando antes de ejecutar el comando.
  • El comando se lee del archivo en cada inicio, así que puedes cambiarlo editando squarecloud.app en el dashboard y reiniciando.
Llama solo a scripts que existan en tu proyecto. START=npm run build && npm run start, por ejemplo, falla en una app de Express sin un script build en package.json. Omite START cuando el comando por defecto sea suficiente.

ID

Esta clave no la escribes tú. Después de squarecloud upload, la CLI de Square Cloud agrega ID=<app ID> al archivo, para que los comandos siguientes, como squarecloud commit, sepan sobre qué aplicación actuar. Square Cloud la ignora al hacer deploy.

Ejemplos

Bot

squarecloud.app

Sitio web o API

squarecloud.app
El sitio responde en https://mysite.squareweb.app.

Next.js

Un framework que necesita un paso de build usa START. Aquí MAIN solo elige el runtime de Node.js, así que apúntalo a tu archivo de configuración real (como next.config.mjs); los scripts de build e inicio vienen de package.json.
squarecloud.app

Próximos pasos

Variables de entorno

Mantén los tokens y las cadenas de conexión fuera de tu código y de tu zip.

squarecloud.ignore

Elige qué archivos dejan fuera de la subida la CLI y VS Code.

Runtimes

Versiones, archivos de dependencias y cómo cada runtime inicia tu app.

Solución de problemas

Qué significa cada error de deploy y cómo solucionarlo.