Cómo alojar aplicaciones Phoenix en Square Cloud
Cómo alojar aplicaciones Phoenix en Square Cloud
El framework Phoenix ofrece un rendimiento espectacular gracias a la máquina virtual de Erlang (BEAM). Para extraer el máximo de esa arquitectura en Square Cloud, no ejecutamos el código fuente en bruto en producción; en su lugar, generamos una Release compilada y configuramos el entorno para Elixir con un comando personalizado.
1. Generando la Release (compilación)
Elixir cuenta con un sistema integrado llamado mix release que reúne el runtime de Erlang, Elixir y todas tus dependencias (incluido el código compilado de Phoenix) en un único directorio independiente.
Antes de enviar, ejecuta los siguientes comandos en tu máquina local para preparar el entorno de producción:
# 1. Instale as dependências de produção
MIX_ENV=prod mix deps.get --only prod
# 2. Compile as dependências e o projeto
MIX_ENV=prod mix compile
# 3. Se o seu app tiver assets (CSS/JS), compile-os (ex: usando Tailwind/Esbuild)
MIX_ENV=prod mix assets.deploy
# 4. Gere o binário de produção
MIX_ENV=prod mix release
Este proceso creará una carpeta de salida en: _build/prod/rel/NOMBRE_DE_TU_APP/. Comprime solo lo necesario, que será lo que contiene esa carpeta.
2. Variables de entorno obligatorias (ENV)
Phoenix exige algunas variables. En el Dashboard, accede a la pestaña Variables de Entorno y configura:
-
SECRET_KEY_BASE: Una clave larga y segura (puedes generar una localmente ejecutandomix phx.gen.secret). -
DATABASE_URL: La string de conexión con tu base de datos (ej.: el PostgreSQL de Square Cloud). -
PHX_HOST: El dominio proporcionado por Square Cloud (ej.:tu-app.squareweb.app).
3. Configurando el entorno y el comando personalizado
Al crear la aplicación en el panel de Square Cloud o al rellenar tu archivo de configuración (squarecloud.app / squarecloud.config), asegúrate de definir el entorno manualmente si compilaste:
- Entorno (Runtime):
elixir
Comando de inicio personalizado (Start):
Para que Phoenix inicie el servidor web y aplique las migraciones de la base de datos (si las hay), usa el siguiente comando combinado:
bin/NOME_DO_SEU_APP start
(Sustituye NOMBRE_DE_TU_APP por el nombre de tu proyecto en minúsculas y el módulo de release definido en tu mix.exs).
4. ¿Qué enviar en el .zip?
Para el deploy, crea un archivo .zip que contenga solo la estructura compilada y los archivos de configuración mínimos:
- La carpeta
_build/(donde está tu release). - La carpeta
config/(opcional, pero útil para referencias). - El archivo
mix.exs.
Nota importante: No envíes las carpetasdeps/,.elixir_ls/ni la carpetaassets/node_modules/. El binario generado en la carpeta_buildya es totalmente autosuficiente.
5. Monitoreo y rendimiento
Como Phoenix se ejecuta compilado dentro de la BEAM, el uso inicial de memoria RAM puede parecer ligeramente mayor que el de un script Node.js simple, pero se mantiene extremadamente estable incluso bajo fuerte estrés. Sigue los logs en el panel de Square Cloud para garantizar que la aplicación inició con éxito.
Actualizado el: 13/06/2026
¡Gracias!
