Introducción
Para desarrollar y alojar una aplicación Phoenix en Square Cloud, es esencial seguir una secuencia estructurada de configuraciones y requisitos previos. Esta guía técnica cubrirá todo el proceso, desde la configuración inicial hasta el despliegue en producción.Requisitos previos
- Cuenta de Square Cloud: Regístrate a través de la página de registro usando tu correo electrónico.
- Plan activo: Garantiza recursos dedicados y un rendimiento optimizado para tu aplicación. Consulta nuestros planes disponibles y elige el más adecuado para tus necesidades.
Crear el proyecto
Necesitas Erlang/OTP y Elixir en tu máquina. Si no los tienes, sigue la guía oficial de instalación de Elixir. Instala el generador de proyectos de Phoenix y crea un proyecto:--no-ecto crea un proyecto sin base de datos, la configuración más simple para hacer deploy. Quítalo si necesitas Ecto y consulta Variables de entorno para la dirección de la base de datos. Inicia el servidor de desarrollo:
http://localhost:4000 en desarrollo.
Compilar para producción
Square Cloud compila tu app al iniciarla: antes de ejecutar tu comandoSTART, obtiene tus dependencias con mix deps.get. El comando START de abajo compila entonces la app en modo producción (MIX_ENV=prod), compila y genera los digests de los assets con mix assets.deploy e inicia el servidor. No necesitas compilar nada en tu máquina, y tu ZIP contiene el código fuente del proyecto.
El primer inicio compila tus dependencias y descarga las herramientas de assets (esbuild y Tailwind), así que tarda unos minutos. Los inicios siguientes reutilizan los archivos compilados.
Puerto y host
No hay nada que cambiar: en producción, elconfig/runtime.exs generado lee la variable de entorno PORT, que Square Cloud define como 80, y escucha en todas las interfaces de red.
Variables de entorno
Define estas variables de entorno en el dashboard o consquarecloud app env set:
Configurar Square Cloud
Crea un archivosquarecloud.app en la raíz de tu proyecto:
squarecloud.app
MAIN=mix.exs le indica a Square Cloud que el proyecto se ejecuta en Elixir, y START reemplaza el mix run --no-halt predeterminado. mix phx.server inicia el servidor web, así que no necesitas PHX_SERVER. Los proyectos con Ecto pueden aplicar las migraciones en cada inicio añadiendo MIX_ENV=prod mix ecto.migrate && antes de mix phx.server.
Qué va en el ZIP
mix.exsymix.lock.config/,lib/,assets/,priv/y las demás carpetas de código fuente.squarecloud.app.
_build/, que contiene archivos compilados para tu máquina, y deps/: Square Cloud vuelve a obtener las dependencias y compila todo en Linux.
¿Prefieres un release? Un release compilado en Windows o macOS no funciona en Square Cloud, que usa Linux: compílalo en Linux, por ejemplo en WSL. Su script de inicio es
_build/prod/rel/my_app/bin/my_app, así que el comando es START=PHX_SERVER=true _build/prod/rel/my_app/bin/my_app start; PHX_SERVER=true hace que el release inicie el servidor web. Mantén mix.exs y mix.lock en el ZIP, porque Square Cloud ejecuta mix deps.get antes de START.Hacer deploy y verificar
A través del panel
1
Accede a la página de subida
Accede a la página de subida y sube el archivo zip de tu proyecto.
2
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.
Si estás subiendo un proyecto web, asegúrate de seleccionar “Publicación Web” y de definir un subdominio para tu proyecto.
3
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.
Tras el despliegue, puedes monitorear el estado y los logs de tu proyecto desde el panel.

4
Confirma que tu aplicación esté en vivo
Tu primer despliegue suele tardar menos de un minuto. En el dashboard, espera a que el estado de tu aplicación muestre “running” y revisa los logs por si hay errores de inicio.
Si desplegaste un sitio web o una API, abre
Si desplegaste un sitio web o una API, abre
https://<tu-subdominio>.squareweb.app en tu navegador: deberías ver tu aplicación respondiendo. Si desplegaste un bot, envíale un comando para confirmar que esté online.
A través de la CLI
Para usar este método, tu proyecto necesita un archivo de configuración llamadosquarecloud.app en su raíz. Le indica a Square Cloud cómo ejecutar tu aplicación.
Guía del archivo de configuración
Aprende a crear el archivo de configuración
squarecloud.app que define el entorno de tu aplicación.1
Instala la CLI
Instala la CLI de Square Cloud. Si ya la tienes, ejecuta el mismo comando para actualizarla:
2
Inicia sesión
Ejecuta el comando de abajo. Abre tu navegador: aprueba el inicio de sesión allí y la CLI queda lista. No hay ninguna clave de API que copiar. Para scripts y CI, consulta autenticación de la CLI.
3
Sube tu proyecto
Desde la carpeta de tu proyecto, ejecuta el comando de abajo. La CLI comprime la carpeta actual en un zip, dejando fuera lo que lista Para subir un zip que creaste tú mismo, pásalo con
squarecloud.ignore, y lo sube:--file:4
Confirma que tu aplicación esté en vivo
Tu primer despliegue suele tardar menos de un minuto. Revisa el estado y los logs de tu aplicación directamente desde la terminal:Si desplegaste un sitio web o una API, abre
https://<tu-subdominio>.squareweb.app en tu navegador: deberías ver tu aplicación respondiendo. Si desplegaste un bot, envíale un comando para confirmar que esté online.
Errores comunes
Dominio personalizado
Para usar un dominio personalizado (por ejemplo,
mysite.com) en lugar de la URL predeterminada mysite.squareweb.app, necesitas el plan Standard o superior. La URL predeterminada sale del campo SUBDOMAIN del archivo de configuración. Para conectar tu dominio, sigue cómo configurar tu propio dominio.Requisitos mínimos de RAM
Mínimo: 512MB de RAM para sitios web y APIs, suficiente para un build estático en el runtime estático. Para apps que renderizan páginas en un servidor (Next.js, Nuxt, Angular SSR y similares), recomendamos al menos 1GB de RAM. Para aplicaciones más grandes, asigna más RAM para evitar que la aplicación se quede sin memoria y falle.
No se pudo encontrar este sitio.
Verifica que el subdominio/dominio coincida con lo configurado en el campo SUBDOMAIN o en la configuración del dominio personalizado. Si acabas de subir el sitio, espera hasta 60 segundos para que Square habilite el primer acceso.
El sitio tardó demasiado en responder…
Tu servidor debe escuchar en el puerto 80 y el host 0.0.0.0. Square Cloud define las variables de entorno PORT (
80) y HOST (0.0.0.0) en tu aplicación: léelas en tu código en lugar de fijar otros valores. Un servidor que escucha solo en localhost o 127.0.0.1 nunca recibe solicitudes.environment variable SECRET_KEY_BASE is missing
DefineSECRET_KEY_BASE como se muestra en Variables de entorno y reinicia la aplicación.
LiveView se reconecta sin parar
PHX_HOST no coincide con la dirección del navegador. Defínelo con tu subdominio o dominio personalizado y reinicia la aplicación.
Próximos pasos
Variables de entorno
Mantén secretos y ajustes fuera de tu código y léelos en tiempo de ejecución.
Dominio personalizado
Sirve tu app en tu propio dominio, desde el plan Standard.
Solución de problemas
Arregla una app que no inicia o un sitio que no responde.

