- Documentação
- Tecnologias
- Elixir
Elixir
A Guara Cloud suporta totalmente aplicacoes Elixir, incluindo frameworks como Phoenix, Ecto e qualquer outro projeto baseado em Elixir. O runtime BEAM do Elixir oferece aplicacoes tolerantes a falhas e altamente concorrentes, ideais para cargas de trabalho em tempo real.
Versoes suportadas
As seguintes versoes do Elixir sao detectadas automaticamente pelo Buildpack:
- Elixir 1.15
- Elixir 1.16
- Elixir 1.17
A versao e determinada pelo campo elixir no seu arquivo mix.exs. Se nenhuma versao for especificada, a ultima versao estavel sera usada.
# mix.exs
defmodule MyApp.MixProject do
use Mix.Project
def project do
[
app: :my_app,
version: "0.1.0",
elixir: "~> 1.17"
]
end
end
Deploy com Dockerfile
Um build multi-stage e a abordagem recomendada para aplicacoes Elixir. Ele compila seu release em um ambiente Elixir completo e depois copia apenas o release para uma imagem de runtime minima.
Deploy com Buildpack
Se o seu repositorio nao contiver um Dockerfile, a Guara Cloud detecta automaticamente seu projeto Elixir pela presenca de um arquivo mix.exs no diretorio raiz.
O Buildpack vai:
- Detectar a versao do Elixir e do OTP pelo
mix.exs - Instalar dependencias com
mix deps.get - Compilar assets se um projeto Phoenix com assets for detectado
- Gerar um Mix release com
mix release - Iniciar o binario do release
Configuracao de porta
Sua aplicacao deve escutar na porta configurada nas configuracoes do servico. Para aplicacoes Phoenix, o padrao e 4000, mas voce pode altera-lo a qualquer momento nas configuracoes do servico.
# config/runtime.exs
config :my_app, MyAppWeb.Endpoint,
http: [port: String.to_integer(System.get_env("PORT") || "4000")],
server: true
Estrutura de projeto exemplo
my-elixir-app/
mix.exs
mix.lock
config/
config.exs
runtime.exs
lib/
my_app/
my_app_web/
priv/
Dockerfile # opcional — omita para usar Buildpack
Variaveis de ambiente
Estas variaveis de ambiente sao comumente usadas em deploys Elixir:
| Variavel | Valor recomendado | Descricao |
|---|---|---|
PORT | Definido pela plataforma | A porta na qual sua aplicacao deve escutar |
MIX_ENV | prod | Garante que a aplicacao compile em modo de producao |
SECRET_KEY_BASE | 64+ caracteres aleatorios | Segredo usado para assinar sessoes e tokens no Phoenix |
DATABASE_URL | String de conexao | URL de conexao PostgreSQL para o Ecto |
PHX_HOST | Seu dominio | O hostname usado para geracao de URLs no Phoenix |