Skip to main content

Introdução

Para desenvolver e hospedar uma aplicação Phoenix na Square Cloud, siga a sequência de configurações e pré-requisitos abaixo. Este guia cobre todo o processo, da configuração inicial ao deploy em produção.

Pré-requisitos

  • Conta Square Cloud: Cadastre-se através da página de cadastro usando seu e-mail.
  • Plano ativo: Garante recursos dedicados e desempenho otimizado para seu aplicativo. Confira nossos planos disponíveis e escolha o mais adequado às suas necessidades.
Este guia usa o runtime Elixir.

Crie o projeto

Você precisa do Erlang/OTP e do Elixir na sua máquina. Se ainda não os tiver, siga o guia oficial de instalação do Elixir. Instale o gerador de projetos do Phoenix e crie um projeto:
O --no-ecto cria um projeto sem banco de dados, a configuração mais simples para fazer deploy. Remova essa opção se você precisar do Ecto e veja Variáveis de ambiente para o endereço do banco de dados. Inicie o servidor de desenvolvimento:
Em desenvolvimento, o Phoenix escuta em http://localhost:4000.

Faça o build para produção

A Square Cloud faz o build da sua aplicação quando ela inicia: antes de rodar o seu comando START, ela baixa as dependências com mix deps.get. O comando START abaixo então compila a aplicação em modo de produção (MIX_ENV=prod), gera e aplica o digest nos assets com mix assets.deploy e inicia o servidor. Você não precisa fazer build de nada na sua máquina, e o seu ZIP contém o código-fonte do projeto.
A primeira inicialização compila as dependências e baixa as ferramentas de assets (esbuild e Tailwind), então leva alguns minutos. As inicializações seguintes reaproveitam os arquivos compilados.

Porta e host

Nada a mudar: em produção, o config/runtime.exs gerado lê a variável de ambiente PORT, que a Square Cloud define como 80, e escuta em todas as interfaces de rede.

Variáveis de ambiente

Defina estas variáveis de ambiente no dashboard ou com squarecloud app env set:

Configure a Square Cloud

Crie um arquivo squarecloud.app na raiz do projeto:
squarecloud.app
O MAIN=mix.exs indica à Square Cloud que o projeto roda em Elixir, e o START substitui o mix run --no-halt padrão. O mix phx.server inicia o servidor web, então você não precisa do PHX_SERVER. Projetos com Ecto podem aplicar as migrações a cada inicialização adicionando MIX_ENV=prod mix ecto.migrate && antes do mix phx.server.

O que vai no ZIP

  • mix.exs e mix.lock.
  • config/, lib/, assets/, priv/ e as outras pastas de código-fonte.
  • squarecloud.app.
Deixe de fora a _build/, que guarda arquivos compilados para a sua máquina, e a deps/: a Square Cloud baixa as dependências de novo e compila tudo no Linux.
Prefere uma release? Uma release gerada no Windows ou no macOS não roda na Square Cloud, que usa Linux: gere-a no Linux, por exemplo no WSL. O script de inicialização dela é o _build/prod/rel/my_app/bin/my_app, então o comando é START=PHX_SERVER=true _build/prod/rel/my_app/bin/my_app start; o PHX_SERVER=true faz a release iniciar o servidor web. Mantenha o mix.exs e o mix.lock no ZIP, porque a Square Cloud roda mix deps.get antes do START.

Faça o deploy e verifique

Via dashboard

1

Acesse a página de upload

Acesse a página de upload e envie seu arquivo zip.
2

Configure seu ambiente

Após fazer o upload do seu arquivo zip, você precisará configurar o nome, o arquivo principal ou o ambiente de execução e outras configurações do seu projeto.
Se você estiver enviando um projeto web, certifique-se de selecionar “Publicação na Web” e definir um subdomínio para o seu projeto.
3

Faça o deploy do projeto

Por fim, clique no botão “Deploy” para hospedar seu projeto na Square Cloud. Após o deploy, você poderá monitorar o status e os registros do seu projeto no dashboard.
Enviando aplicação para a Square Cloud
4

Confirme que seu app está no ar

Seu primeiro deploy geralmente leva menos de um minuto. No dashboard, aguarde o status da sua aplicação mudar para em execução e verifique os registros em busca de erros de inicialização.
Se você fez deploy de um site ou API, abra https://<seu-subdominio>.squareweb.app no navegador: você deve ver sua aplicação respondendo. Se você fez deploy de um bot, envie um comando para confirmar que ele está online.
Seu app não está iniciando? Veja o guia de solução de problemas para as causas e correções mais comuns.

Via CLI

Para usar esse método, seu projeto precisa de um arquivo de configuração chamado squarecloud.app na raiz. Ele informa à Square Cloud como executar a sua aplicação.

Guia do arquivo de configuração

Saiba como criar o arquivo de configuração squarecloud.app que define o ambiente da sua aplicação.
1

Instale a CLI

Instale a CLI da Square Cloud. Se você já a tem, execute o mesmo comando para atualizá-la:
2

Faça login

Execute o comando abaixo. Ele abre o seu navegador: aprove o login lá e a CLI está pronta. Não há nenhuma chave de API para copiar. Para scripts e CI, veja autenticação da CLI.
3

Envie o seu projeto

Na pasta do seu projeto, execute o comando abaixo. A CLI compacta a pasta atual, deixando de fora o que o squarecloud.ignore lista, e faz o upload:
Para enviar um zip que você mesmo criou, passe-o com --file:
4

Confirme que seu app está no ar

Seu primeiro deploy geralmente leva menos de um minuto. Verifique o status e os registros da sua aplicação diretamente pelo terminal:
Se você fez deploy de um site ou API, abra https://<seu-subdominio>.squareweb.app no navegador: você deve ver sua aplicação respondendo. Se você fez deploy de um bot, envie um comando para confirmar que ele está online.
Seu app não está iniciando? Veja o guia de solução de problemas para as causas e correções mais comuns.

Erros comuns

Domínio personalizado

Para usar um domínio personalizado (ex.: meusite.com) no lugar da URL padrão meusite.squareweb.app, você precisa do plano Standard ou superior. A URL padrão vem do campo SUBDOMAIN no arquivo de configuração. Para conectar o seu domínio, veja como configurar seu próprio domínio.

Requisitos mínimos de RAM

Mínimo: 512MB de RAM para sites e APIs, o suficiente para um build estático no runtime estático. Para aplicações que renderizam páginas no servidor (Next.js, Nuxt, Angular SSR e similares), recomendamos pelo menos 1GB de RAM. Para aplicações maiores, aloque mais RAM para evitar que a aplicação fique sem memória e trave.

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…

O seu servidor precisa escutar na porta 80 e no host 0.0.0.0. A Square Cloud define as variáveis de ambiente PORT (80) e HOST (0.0.0.0) na sua aplicação: leia essas variáveis no código em vez de fixar outros valores. Um servidor que escuta apenas em localhost ou 127.0.0.1 nunca recebe requisições.

environment variable SECRET_KEY_BASE is missing

Defina a SECRET_KEY_BASE como mostrado em Variáveis de ambiente e reinicie a aplicação.

O LiveView fica reconectando

A PHX_HOST não corresponde ao endereço no navegador. Defina-a com o seu subdomínio ou domínio personalizado e reinicie a aplicação.

Próximos passos

Variáveis de ambiente

Mantenha segredos e configurações fora do código e leia-os em tempo de execução.

Domínio personalizado

Sirva a sua aplicação no seu próprio domínio, a partir do plano Standard.

Solução de problemas

Corrija uma aplicação que não inicia ou um site que não responde.
Para saber mais sobre o Phoenix, consulte a documentação oficial do Phoenix e o guia de releases.

Contate-nos

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: a qualidade do suporte é uma grande parte do motivo pelo qual desenvolvedores avaliam a Square Cloud com 4,9/5 em 402 avaliações no Google e Trustpilot.