Deploy - Erros comuns
Deploy via Git Remote
Você pode se deparar com alguns erros ao efetuar o deploy, então aqui estão alguns exemplos e dicas para soluciona-los:
git push - remote: HTTP Basic: Access denied
-
Vá no seu Painel de Controle e procure pela opção Gerenciador de Credenciais. Selecione a opção Exibir por: Ícones grandes no canto superior direito se necessário.
-
Selecione Credenciais do Windows. Agora, embaixo de Credenciais Genéricas apague todas as credenciais que tiverem o prefixo git:
-
Tente fazer o deploy novamente. Se tudo der certo, aparecerá uma janela perguntando o usuário e senha. O usuário é a conta de e-mail que você tem registrada no seu painel Umbler, assim como a senha.
-
Após clicar em OK é suposto começar a enviar a sua aplicação para a Umbler!
Se o erro persistir, recomendamos que troque a sua senha do painel Umbler para outra e repetir o processo acima. Isso faz com que as credenciais sejam geradas novamente dos dois lados.
Conexão SSH
Ao tentar se conectar com o SSH você pode receber alguns erros, então aqui temos algumas formas de solucionar os problemas mais comuns:
Connection closed by remote host
Um das coisas que podem acontecer é a sua aplicação estar offline :(
No caso de Container NodeJS, o erro é quase sempre o mesmo. A aplicação terminou com erro. Por natureza de Containers, eles tem um processo principal. Que é executado junto com o Container e é derrubado quando o Container é derrubado, ou vice versa.
O vice-versa é que é a parte importante nesse caso, pois a aplicação principal de um Container Node é a própria aplicação Node que é hospedada no Container. O que significa que se a aplicação terminar, (seja por erro ou forçado) o Container será derrubado junto. E não é possível conectar por SSH em um Container que não está online.
Exemplo de logs de uma aplicação Node que terminou com erro:
Para solucionar o problema, basta fazer um novo deploy, corrigindo o erro que estava fazendo a aplicação terminar.
Porém, se você estiver preso nesse deadlock e não consegue acessar o SSH, há uma maneira de resolver.
Altere a aplicação para uma de testes, que não faz nada. Mas fica fazendo "nada" para sempre, permitindo que o Container permaneça online.
-
Vá no gerenciador de arquivos
-
Crie um arquivo .js. temporario.js, por exemplo
-
Nesse arquivo, insira um código que não causará erros e manterá a aplicação rodando. Exemplo:
require("http").createServer((req, res) => res.end("Oi :D")).listen(process.env.PORT || 3000, () => console.log("Aplicação temporária rodando."));
Essa aplicação cria um servidor HTTP nativo (não precisa do express) que escuta na porta 3000. Mas não faz mais nada além disso. -
No package.json, altere temporariamente o script start para executar o código acima
“start”: “node temporario.js” -
Reinicie o Container
-
Tente novamente conectar por SSH
-
Corrija os problemas necessários
-
Altere o script start de volta para o comando antigo
-
Reinicie o Container novamente e pronto!
Se você tem uma aplicação PHP ou a solução acima não se aplica, uma outra opção é o seu SSH estar desconfigurado.
Geralmente quando esse erro ocorre, o problema se dá pela porta do SSH do site, para solucionar basta:
-
Pausar e iniciar o site pra gerar outra porta
-
Desabilitar o SSH, aguardar e habilitar novamente
-
Após isso é só tentar novamente com a nova URL SSH e deve funcionar!