DEV Community

loading...

Deploy API Node, Adonis, Mysql AWS Ubuntu

Guiller
Software Engineer, Full Stack Developer Web, Enthusiastic Security Software and Gamer Developer.
Updated on ・4 min read

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/

Discussion (0)