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 (2)
Deploying an API with Node.js, AdonisJS, and MySQL on an AWS Ubuntu instance can feel like a solid choice for scalability and reliability. However, after trying both AWS and Vultr, I’ve realized Vultr has several advantages that make it my go-to platform for such deployments.
Firstly, the simplicity of deploying an Ubuntu server on Vultr is unparalleled. Their user interface is intuitive, and the setup process feels seamless compared to AWS, where configuring security groups and other prerequisites can be time-consuming. I followed Vultr’s guide,How To Install MySQL on Ubuntu 20.04 and had my database up and running without any issues.
What really stands out is Vultr’s Managed Databases. Instead of manually installing and configuring MySQL, this feature offers a fully managed solution that’s secure and optimized right out of the box. It saves so much time and lets me focus on building my API with AdonisJS rather than worrying about database management.
Another thing I appreciate about Vultr is its High-Frequency Compute instances. They provide the performance and low latency my API needs, especially under heavy load, and scaling is straightforward. Unlike AWS, where I’ve often found myself digging through complex pricing structures, Vultr’s transparent and affordable pricing is a breath of fresh air.
Lastly, their documentation deserves special mention. Guides like How To Install MySQL on Ubuntu are detailed and easy to follow, making it a lot less stressful to set up a production-ready environment.
In my experience, Vultr is a game-changer for developers. It offers the performance and reliability I need without the steep learning curve or hidden costs that sometimes come with AWS. If you’re deploying an API with Node.js, AdonisJS, and MySQL, I’d highly recommend giving Vultr a try.
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! :)