Executando verificação de segurança...
1

Existem diversas formas de fazer o deploy, desde a mais manual até completamente automática.

No caso você tem um servidor Ubuntu e acesso a máquina via ssh.

Pense nas seguintes tarefas:

Configurar o ambiente

O ambiente do servidor deve se assemelhar ao ambiente de desenvolvimento, mesmas versões do node e demais ferramentas utilizadas.

Desta forma você evita o famoso "mas na minha máquina funciona".

Para isso, nada mais "lindo" do que um container Docker e (opcionalmente) um docker-composer para comandar diversos containers.

Isso (docker) é opcional, mas se você quer amadurecer essa infraestrutura, pense nisso.

Entregar o codigo ao servidor

Você precisa de alguma forma chegar com o codigo no servidor, e ter uma forma de fazer isso sempre que lançar uma nov versão.

Existem algumas formas usuais:

  • Clona o repositorio git no servidor (use uma chave ssh exclusiva com permissão apenas para pull)
  • Sobe os arquivos via scp (um ftp via ssh)
  • Faz o download via curl ou wget do teu repositorio de algum canto da internet.

Para auxiliar nesse processo, você pode ter scripts bash que façam esse trabalho braçal, e ao lançar uma nova versão voce só rode ./release.sh por exemplo.

Também pode usar um webhook do github para chamar um endpoint da sua api responsável por chamar o script de release (um CI simplificado) Nota: sempre proteja esse endpoint com uma chave secreta.

Monitorar o funcionamento da API

Existem ferramentas para forçar sua API a inicializar automaticamente, e reiniciar em caso de falhas. Por exemplo o PM2.

Quando você está em produção, é muito importante gerar LOGs de todos os eventos relevantes, e se possível ter uma ferramenta para monitorar esses logs, e eventualmente lhe alertar de alguns eventos chave (por exemplo quando o servidor for reiniciado por causa de uma falha)

Carregando publicação patrocinada...