Node.JS na Umbler

Sejam bem-vindos ao HUB de ajuda sobre Node.js da Umbler  

Aqui você vai encontrar todos os tutoriais sobre Node.JS na Umbler: do setup ao deploy, veja os principais passos para hospedar seu site/app em Node.JS.

Para fazer o deploy de aplicações em Node.JS, é necessário tomar bastante cuidado com um arquivo chamado package.json, pois é nele que ficam todas configurações de inicialização da sua aplicação, como o entry point de inicialização e as dependências utilizadas nela. 
 
Segue um exemplo de um package.json:
 
{
  "name": "umblerito_code",
  "version": "1.0.0",
  "description": "A Umbler é a melhor hospedagem do universo",
  "main": "app.js",
  "scripts": {
    "start": "node app"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.17.1",
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  }
}
 
Tome cuidado com start: node app, que é o comando que o NPM vai utilizar assim que a sua aplicação for publicada. Se você não configurar nenhum entry point para o node iniciar, o servidor vai iniciar com o entry point padrão que o NPM define, o server.js.
 
Quando for feita a publicação da sua aplicação, se você não enviar a a pasta node_modules o NPM vai fazer download das dependências que estão em seu package.json
 
Você consegue mais informações sobre o NPM nesse link
O primeiro passo é acessar o Painel de controle > Seu Domínio > Site > Deploy > E copiar a sua Git URL:
Depois de pegar a sua Git URL, você deve iniciar um repositório Git na pasta da sua aplicação, caso ainda não tenha feito. Você pode, então, fazer push de um commit nesse repositório. Segue um exemplo de instruções para iniciar o repositório, fazer o commit e o push para o servidor da Umbler.
 
Se você enviar o deploy com o arquivo yarn.lock o servidor vai identificar esse arquivo e ao em vez de executar o NPM INSTALL ele executará o YARN INSTALL.
 
git init
git add .
git commit -m "Meu deploy em Node.JS na Umbler"
git remote add umbler SUA_GIT_URL
git push umbler master
 
O primeiro comando utilizado é o Git Init, ele é responsável pela inicialização do seu repositório Git, você consegue mais informações sobre a utilização do Git nesse link:
Acessando a Git SCM
 
Assim que o push for feito para o servidor da Umbler, vamos verificar se nos arquivos enviados existe o diretório node_modules que é o diretório onde ficam os módulos instalados da sua aplicação. Se você enviar o diretório node_modules no deploy, não será executado o NPM INSTALL em seu servidor, caso você não envie o diretório node_modules será executado o NPM INSTALL em seu servidor e o download de todas as suas dependecianas do package.json será feito.
 
Se você estiver fazendo o push para o servidor da Umbler pela primeira vez terá que se identificar/autenticar. Os dados de autenticação são os mesmos que você utiliza para acessar o painel de controle da Umbler: e-mail e senha.
  
Quando o deploy terminar o Git Bash vai retornar uma mensagem parecida com essa:
 
remote: Build OK
remote: Umbler: Build completed successfully!  Your application will be updated and published soon.
remote: Umbler: Temp address: http://node-na-umbler-com.umbler.net
To https://tatooine.deploy.umbler.com/7e8vlyok/node-na-umbler-com.git
 
Vale lembrar que a sua aplicação deve estar rodando na porta 3000 ou utilizar a variável de ambiente PORT para que a sua aplicação seja acessível externamente.
 
Segue um exemplo de código para te ajudar:

var express = require('express');
var app = express();

//... your code here ...
                                
var port = process.env.PORT || 3000;
app.listen(port, function () {
    console.log('Umbler listening on port %s', port);
});
 
Agora que o deploy foi feito e a sua aplicação publicada é só aguardar o servidor iniciar!  
 
Para verificar os logs do deploy da sua aplicação você precisa acessar o Painel de controle da Umbler > Deploy e clicar em ver logs, como mostra a imagem a seguir: umbler_logs_deploy.png Depois de clicar em ver logs vai aparecer os seus logs, como nessa imagem:  logs_deploy.PNG
Para verificar os logs da sua aplicação, primeiro você precisa ativá-los.
 
Um detalhe importante é que os logs só ficarão ativos por 24 horas. Para ativa-los você precisa acessar o Painel de controle > Seu domínio > Logs, após isso é só clicar em Habilitar por 24H como informa a imagem abaixo: logs_node.png
 
Depois de habilitado, sua tela ficará assim: logs_node_feito.png
Através do painel de controle é possível definir variáveis de ambiente que podem ser acessadas pela sua aplicação. Por padrão o sistema já possui algumas variáveis predefinidas (PORT, TZ, LANG e LANGUAGE) que não podem ser alteradas através desta tela, mas que estão visíveis para fim de informação.
 
Para acessar as variáveis de ambiente acesse: painel de controle > Depois clicando em Site > Configurações > Variáveis de ambiente Node.JS
 
Segue uma imagem de exemplo para te auxiliar: variaveis_de_ambiente.png Agora você poderá ver todas as suas variáveis de ambientes. Por padrão, a variável PORT é criada, como o nosso Node.JS roda na porta 3000, já criamos essa variável de ambiente PORT para te auxiliar.
 
Para criar uma nova variável de ambiente é só clicar em "Criar variável de ambiente" (marcado com o quadrado vermelho) e utilizá-la em sua aplicação através do seguinte código:
process.env.NOME_DA_VARIAVEL
variaveis_de_ambiente.png
Na Umbler você consegue escalar a sua aplicação tanto horizontalmente como verticalmente, você consegue aumentar o tamanho do seu container e também ampliaro número de processos atendendo a sua aplicação.
 
É bem simples fazer um upgrade no seu plano, basta acessar o painel de controle > Site > E depois clicar no botão marcado em laranja e depois no botão em vermelho
 
node_redimensionar.png
 
Agora você estará nessa tela: redimensionamento.PNG Agora é só selecionar como você deseja escalar a sua aplicação, quantos processos você deseja que o Node.JS tenha disponível para utilizar e qual o tamanho deles.
 
Vale lembrar que se você utiliza sessão na sua aplicação é preciso armazena-la em algum local, como um banco de dados ou salvar o token no navegador do usuário como um Cookie mesmo, pois se você armazenar o token de sessão no processo quando o Node.JS for atender outra requisição pode ser que o processo que vá te atender não seja mais o mesmo, e assim o seu token de sessão será perdido.

Qualquer dúvida que você tiver é só clicar no balãozinho azul no canto inferior direito, estamos prontos ajudar!