Como usar AdonisJS na Umbler

Para usar AdonisJS na Umbler você precisa prestar especial atenção à configuração do arquivo .env

O que você precisa cuidar é de ter certeza que dentro das configurações dele, estará definida a porta 3000 como nesse exemplo:

  HOST=0.0.0.0
  PORT=3000

Para ver um exemplo geral de um arquivo .env clique aqui.

O ideal é que não sejam usadas informações nos arquivos .env. É uma boa prática não fazer isso, visto que lá contém senhas, keys e demais dados que não precisam ser de conhecimento de todos os desenvolvedores.

Acontece que o adonis precisa que este arquivo exista na raiz do app.

Neste caso, temos duas opções:

1. Enviar um arquivo .env com o conteúdo vazio.

Em seguida vamos na opção de variáveis ambiente do umbler e colocamos todas as variáveis que precisamos, exceto PORT e HOST, que são geradas pelo próprio Umbler, conforme imagem abaixo:

Nem todas são necessárias. A única realmente obrigatória é a APP_KEY que, se você não estiver usando banco de dados, poderia até estar vazia, mas o Umbler nao deixa criar variáveis de ambiente sem conteúdo. Mas ela realmente precisa existir, pois nas configurações o código dela é chamado com getOrFail() e se não existir, quebra a aplicação.

As variáveis que iniciam com “DB_” são as variáveis de configuração do banco de dados.

APP_NAME é reescrita para “Adonis” pelo framework, caso não exista.
APP_URL fica NULL caso não seja preenchida. No meu caso, eu uso para fazer alguns retornos, mas também não é obrigatória.

2. Informar ao Adonis que você não está usando arquivo .ENV.

Para fazer isso, reescreve o seu script de “start” do seu package.json de

node server.js

para

ENV_SILENT=true node server.js

Dessa forma o adonis ignora o arquivo .env. O lado negativo desta abordagem é que vocÊ não conseguirá usar corretamente a class Env() nativa do framework.
Caso não precise de nenhuma informação de lá, esta é a mais simples de usar.

Observações

Caso haja erros na resposta, corrigirei nos próximos deploys

2 curtidas

Tive problema igual a esse. Além do dito acima, foi necessário determinar o HOST=0.0.0.0
A porta não foi necessário.