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
sudo apt-get upgrade
- Instalar o Nodejs na versão 14 TLS
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt -y install nodejs
- Verifique a instalação e versão.
node -v
A versão deve ser igual ou superior a 14.17
-Versão do Nodejs instalada:
v14.17.2
- Verifique o NPM e sua versão:
npm -v
- Instalar o Adonis Framework Global
Instalar o Mysql-Server
- Comando de instalação:
sudo apt install mysql-server
- 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
- Se tudo estiver certo, o resultado será esse:
Agora vamos trocar a senha do usuário padrão do mysql, o root.
Entre no Mysql, com o comando:
sudo mysql
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';
- Altere 'you new password' para sua senha atual.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your new password';
Resposta do Mysql:
Query OK, 0 rows affected (0.01 sec)
Criando um novo banco de dados para nossa aplicação:
sudo mysql -u root -p
Digite sua senha cadastrada no processo anterior.
Pronto! Dentro do MYSQL!
Crie um novo banco de dados:
CREATE DATABASE my_name_database;
- Veja o novo banco criado:
SHOW DATABASES;
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
Cadastre sua senha passa esse usuário.
Como conceder a um usuário privilégios root
sudo /usr/sbin/visudo
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
Entre na sessão desse novo usuário criado:
su - novo_usuario
Pronto! Verifique de estar logado com seu usuário.
myuser@ip-122-34-1-200:~$
Instale o Adonis-Cli Framework Globalmente no servidor:
sudo npm install -g adonis-cli
Instale o PM2 Framework Globalmente para Hosting e Deploy da nossa aplicação:
sudo npm install -g pm2
- 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
Entre no projeto:
cd adonis-realworld-example-app
Instale a aplicação e os pacotes:
sudo npm install
Alterar o arquivo .env.exemple para .env:
mv .env.exemple .env
Instale a Adonis dentro da sessão do seu usuário recém criado:
sudo npm i --global @adonisjs/cli
Instale o PM2 dentro da sessão do seu usuário recém criado:
sudo npm install -g pm2
Gerando a chave única da aplicação:
adonis key:generate
Entre no arquivo .env para configurar sua aplicação:
nano .env
Altere suas credências de acesso ao banco de dados no arquivo .env
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://scotch.io/tutorials/deploying-adonisjs-5-to-digitalocean
https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/
Top comments (1)
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! :)