Pular para o conteúdo principal

Desenvolvimento Profissional de Aplicações Phoenix

  • Antes de começar, certifique-se de que tem Erlang/OTP e Elixir instalados no seu sistema. Se ainda não os tem, faça o download e siga as instruções de instalação na página oficial do Elixir.
  • O Phoenix é construído sobre Elixir e a máquina virtual Erlang (BEAM). Garanta que seu ambiente cumpra os requisitos da versão do Phoenix que você pretende usar.
  • Em seguida, crie uma conta no Square Cloud através da página de cadastro e verifique se possui um plano pago ativo compatível com as necessidades do seu projeto aqui.

Configuração do Phoenix

Instale o gerador de projetos Phoenix, caso ainda não o tenha:
mix archive.install hex phx_new
Crie um novo projeto Phoenix (escolha as opções conforme necessário):
mix phx.new my_app
Siga os prompts para incluir Ecto, dashboard e ferramentas de assets (esbuild, tailwind, etc.) conforme desejar. Após a criação do projeto, obtenha as dependências:
cd my_app
mix deps.get
Para criar o banco de dados (se estiver usando Ecto):
mix ecto.create
Inicie o servidor de desenvolvimento:
mix phx.server
Por padrão o Phoenix roda em http://localhost:4000.

Criando o Arquivo de Configuração do Square Cloud

Saiba mais: como criar o arquivo de configuração para o Square Cloud.

O arquivo squarecloud.app define o nome da aplicação, descrição, versão, ponto de entrada e outras configurações essenciais.

Configurando o Campo START

Aplicações Phoenix geralmente rodem como releases em produção. Um comando comum de início após construir o release é:
_build/prod/rel/my_app/bin/my_app start
Uma sequência completa de build + start (usada localmente ou em scripts de build) fica parecida com:
MIX_ENV=prod mix deps.get --only prod
MIX_ENV=prod mix assets.deploy
MIX_ENV=prod mix release
_build/prod/rel/my_app/bin/my_app start
Defina o campo START em squarecloud.app para o comando que você usa para rodar o release (por exemplo a sequência completa ou um script que execute o release e inicie o app).

Comprar um Plano Antes de Enviar o Projeto

Antes de implantar sua aplicação Phoenix no Square Cloud, certifique-se de ter um plano ativo que atenda à CPU e memória necessárias. Phoenix é altamente concorrente e se beneficia de CPU e memória adequadas. Para a maioria das aplicações, o plano Standard é um bom ponto de partida; aplicações de alto tráfego ou intensivas em CPU devem considerar o plano Pro.
Não tem certeza de quanta RAM e CPU uma aplicação Phoenix precisa? Depende da concorrência, conexões em pool e jobs em background. Comece com o Standard para aplicações web típicas e escale conforme observar limites de recursos.

Build do Phoenix para Produção

Exemplo de passos para build de produção (ajuste conforme seu projeto e pipeline de assets):
# instalar dependências de produção
MIX_ENV=prod mix deps.get --only prod

# compilar e criar release
MIX_ENV=prod mix compile
MIX_ENV=prod mix assets.deploy
MIX_ENV=prod mix release

# iniciar o release
_build/prod/rel/my_app/bin/my_app start
Se sua aplicação não utiliza releases, também é possível rodar com MIX_ENV=prod mix phx.server, porém releases são recomendados para produção por oferecerem maior estabilidade. Ao usar squarecloud.app, aponte o comando START para a etapa final de start (binário do release) ou para um script de deploy que execute os passos acima.

Upload do Projeto para a Square Cloud

Após preparar todos os arquivos do projeto, proceda com o upload para a Square Cloud e hospede sua aplicação profissionalmente.
  • Upload via Dashboard
  • Upload via CLI
Acesse o Dashboard da Square Cloud e faça o upload dos arquivos do seu projeto.

Recursos Adicionais

Documentação oficial e referências:

Solução de Problemas

Domínio Personalizado

Para usar domínio personalizado (ex: meusite.com) ao invés da URL padrão https://meusite.squareweb.app/, você precisa do plano Standard ou superior. O subdomínio é definido pelo campo SUBDOMAIN no arquivo de configuração. Veja: Como configurar seu domínio personalizado.

Requisitos Mínimos de RAM

Mínimo: 512MB de RAM para websites/APIs simples. Para sites com frameworks (Next.JS, React, Vue, Angular, etc.), sugerimos sempre pelo menos 1GB de RAM. Para aplicações maiores, use mais RAM para evitar erro LACK_OF_RAM e garantir performance.

Não foi possível encontrar esse site.

Verifique se o subdomínio/domínio corresponde ao configurado no campo SUBDOMAIN ou nas configurações de domínio personalizado. Se você acabou de enviar o site, aguarde até 60 segundos para a Square liberar o primeiro acesso.

Site demorou demais para responder...

Verifique se configurou corretamente a porta 80 e host 0.0.0.0 na aplicação. Recomendamos usar as variáveis de ambiente forçadas da Square: PORT e HOST do arquivo .env.
Se você continuar enfrentando dificuldades técnicas, nossa equipe de suporte especializada está disponível para auxiliá-lo. Entre em contato conosco e teremos prazer em ajudá-lo a resolver qualquer questão.