DEV Community

Guiller
Guiller

Posted on • Edited on

Deploy API Node, Adonis, Mysql AWS Ubuntu

Deploy de produção completo API Node/Adonis, Mysql, Ubuntu 18/20 no servidor cloud AWS.

  • Criar uma máquina no serviço ec2 da Aws. Ubuntu Server 18.04 ou 20
sudo apt-get update
Enter fullscreen mode Exit fullscreen mode
sudo apt-get upgrade
Enter fullscreen mode Exit fullscreen mode
  • Instalar o Nodejs na versão 14 TLS
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
Enter fullscreen mode Exit fullscreen mode
sudo apt -y install nodejs
Enter fullscreen mode Exit fullscreen mode
  • Verifique a instalação e versão.
node  -v
Enter fullscreen mode Exit fullscreen mode
A versão deve ser igual ou superior a 14.17

-Versão do Nodejs instalada:

v14.17.2
Enter fullscreen mode Exit fullscreen mode
  • Verifique o NPM e sua versão:
npm -v
Enter fullscreen mode Exit fullscreen mode
  • Instalar o Adonis Framework Global

Instalar o Mysql-Server

  • Comando de instalação:
sudo apt install mysql-server
Enter fullscreen mode Exit fullscreen mode
  • Instalando da forma correta e segura siga esse exemplo:

https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04-pt

Verifique se o Mysql foi instalado corretamente e se esta funcionando.

systemctl status mysql.service
Enter fullscreen mode Exit fullscreen mode
  • Se tudo estiver certo, o resultado será esse:

Alt Text

Agora vamos trocar a senha do usuário padrão do mysql, o root.

Entre no Mysql, com o comando:

sudo mysql
Enter fullscreen mode Exit fullscreen mode

Agora alterar/adicionar uma senha para o usuário root.

  • Altere 'you new password' para sua senha atual.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password'; 
Enter fullscreen mode Exit fullscreen mode
  • Altere 'you new password' para sua senha atual.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your new password';
Enter fullscreen mode Exit fullscreen mode

Resposta do Mysql:

Query OK, 0 rows affected (0.01 sec)
Enter fullscreen mode Exit fullscreen mode

Criando um novo banco de dados para nossa aplicação:

sudo mysql -u root -p
Enter fullscreen mode Exit fullscreen mode

Digite sua senha cadastrada no processo anterior.

Pronto! Dentro do MYSQL!

Crie um novo banco de dados:

CREATE DATABASE my_name_database;
Enter fullscreen mode Exit fullscreen mode
  • Veja o novo banco criado:
SHOW DATABASES;
Enter fullscreen mode Exit fullscreen mode

Agora poderemos incluir o processo em nosso arquivo .env, fazendo a migração do banco de dados para o nosso banco recém criado. Se tudo estiver correto poderemos fazer as migrations sem problemas.

  • Você pode usar outros Banco de Dados ou ORMs e coisas do tipo, você pode fazer isso usando qualquer outra ferramenta nesse sentido, neste exemplo usaremos o Node-JS com AdonisFramework-JS, por isso algumas particularidades.
Download do projeto API Service Backend. Projeto usando Nodejs/Adonis Framework e Mysql Database.

O projeto está aberto no Github:
https://github.com/Utwo/adonis-realworld-example-app

Criar um novo usuário Linux dentro do seu console do Ubuntu 18 ou 20. Toque novo_usuario pelo seu usuário.

sudo adduser novo_usuario
Enter fullscreen mode Exit fullscreen mode

Cadastre sua senha passa esse usuário.

Como conceder a um usuário privilégios root

sudo /usr/sbin/visudo
Enter fullscreen mode Exit fullscreen mode

Altere o arquivo, inserindo seu usuário e o total privilégio.

  • Adicionando o nome do usuário e as mesmas permissões como root sob a especificação de privilégios do usuário irá conceder-lhes os privilégios sudo.
# User privilege specification
root            ALL=(ALL:ALL) ALL 
novo_usuario    ALL=(ALL:ALL) ALL
Enter fullscreen mode Exit fullscreen mode

Alt Text

Entre na sessão desse novo usuário criado:

su - novo_usuario
Enter fullscreen mode Exit fullscreen mode

Pronto! Verifique de estar logado com seu usuário.

myuser@ip-122-34-1-200:~$
Enter fullscreen mode Exit fullscreen mode

Instale o Adonis-Cli Framework Globalmente no servidor:

sudo npm install -g adonis-cli
Enter fullscreen mode Exit fullscreen mode

Instale o PM2 Framework Globalmente para Hosting e Deploy da nossa aplicação:

sudo npm install -g pm2
Enter fullscreen mode Exit fullscreen mode
  • Processo completo de instalação, configuração e migração do banco de dados.

Faça o download do projeto para o local do seu usuário.

O projeto está aberto no Github:
https://github.com/Utwo/adonis-realworld-example-app

git clone https://github.com/Utwo/adonis-realworld-example-app
Enter fullscreen mode Exit fullscreen mode

Entre no projeto:

cd adonis-realworld-example-app
Enter fullscreen mode Exit fullscreen mode

Instale a aplicação e os pacotes:

sudo npm install
Enter fullscreen mode Exit fullscreen mode

Alterar o arquivo .env.exemple para .env:

mv .env.exemple .env
Enter fullscreen mode Exit fullscreen mode

Instale a Adonis dentro da sessão do seu usuário recém criado:

sudo npm i --global @adonisjs/cli
Enter fullscreen mode Exit fullscreen mode

Instale o PM2 dentro da sessão do seu usuário recém criado:

sudo npm install -g pm2
Enter fullscreen mode Exit fullscreen mode

Gerando a chave única da aplicação:

adonis key:generate
Enter fullscreen mode Exit fullscreen mode

Entre no arquivo .env para configurar sua aplicação:

nano .env
Enter fullscreen mode Exit fullscreen mode

Altere suas credências de acesso ao banco de dados no arquivo .env

Alt Text

EM CONSTRUÇÃO...

Referências:

https://wime.com.br/2013/06/06/como-adicionar-e-excluir-usuarios-no-ubuntu-12-04-e-centos-6/

https://www.howtoforge.com/tutorial/how-to-deploy-nodejs-applications-with-pm2-and-nginx-on-ubuntu/

https://dev.to/romainlanz/deploy-your-adonis-website-17ec

https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04-pt

https://stackoverflow.com/questions/51008807/nodejs-mysql-client-does-not-support-authentication-protocol

https://scotch.io/tutorials/deploying-adonisjs-5-to-digitalocean

https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/

Top comments (1)

Collapse
 
thiagoow profile image
Thiago Silva Lopes

Incrível mano! Preciso fazer um deploy de uma API adonis para um projeto pessoal que estou trabalhando, e seu passo a passo vai me ajudar muito! :)