<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Felipe Ramos Kafuri</title>
    <description>The latest articles on DEV Community by Felipe Ramos Kafuri (@felipekafuri).</description>
    <link>https://dev.to/felipekafuri</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F282535%2F4284b0c5-921d-46de-9f45-f44a9e67c5f9.jpeg</url>
      <title>DEV Community: Felipe Ramos Kafuri</title>
      <link>https://dev.to/felipekafuri</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/felipekafuri"/>
    <language>en</language>
    <item>
      <title>Semana 2</title>
      <dc:creator>Felipe Ramos Kafuri</dc:creator>
      <pubDate>Tue, 01 Dec 2020 01:32:07 +0000</pubDate>
      <link>https://dev.to/felipekafuri/semana-2-1ndm</link>
      <guid>https://dev.to/felipekafuri/semana-2-1ndm</guid>
      <description>&lt;p&gt;Fala pessoal seguindo o desafio de um escrever um post por semana para documentar os conhecimentos adiquiridos durante a semana, mas antes gostaria de me desculpar pelo atraso no desafio, mas não tive tempo de escrever o post e publica-lo à tempo. E seguindo a mesma estrutura do último post, vou separa-lo em dois tópicos: &lt;strong&gt;Hard skills e Soft skills.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hard Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  MockImplementationOnce
&lt;/h3&gt;

&lt;p&gt;Essa semana tirei pra escrever os testes da aplicação que estou desenvolvendo para e empresa que estou abrindo com meu irmão. Devo dizer que não tem nada mais prazeroso que garantir que sua aplicação não vai quebrar e que ela está seguindo todas as regras de negócios estabelecidas. E nesse novo projeto, durante os testes tive que usar bastante essa função da biblioteca jest, chamada &lt;strong&gt;mockImplementationOnce&lt;/strong&gt; que basicamente serve para fazer o mock uma vez de uma função existente nos meus services, porem, retornando um valor determinado por mim, que é pode ser diferente do que provavelmente a função retornaria. No caso em que usei, tive que retornar um hash com valor activated =true, mesmo sabendo que o valor era false.&lt;/p&gt;

&lt;h3&gt;
  
  
  Merge Sort
&lt;/h3&gt;

&lt;p&gt;Sempre me desafio a aprender mais, e essa semana me desafiei a aprender um novo algorítimo de sorting, apesar de trabalhar com linguagens de alto nível é sempre bom aprender esses algotimos para sempre termos cartas na manga. E esse algoritimo pode parecer complexo no começo mas depois de alguma pratica se torna razoavelmente simples. Ele se baseia naquela famosa frase "Dividir para conquistar", onde primeiramente você deve ir dividindo o array ao meio e reorganizando suas metades recursivamente para poder coloca-las em ordem, segue abaixo uam foto ilustrativa de como funciona esse algoritimo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nPIp_lhH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h40ke0oc2zpypydk1qm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nPIp_lhH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h40ke0oc2zpypydk1qm0.png" alt="Alt Text" width="880" height="895"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Soft Skills
&lt;/h2&gt;

&lt;p&gt;Como falei no último post estou lendo o livro "Como fazer amigos e influenciar pessoas" e nessa semana retirei um ensimento que vou levar desse livro pra vida, que resumidamente, é: não reprimir alguem por alguma escolha que resultou em um erro. No livro o autor cita vários exemplos de pessoas extremamente bem sucedidas como Lincon ex-presidente que seguiram esse ensinamento, pois isso reflete no comportamental do outro. Segundo o autor se vc agir de forma mais calma e racional com o proximo, evita com que eles não assumam/reconheçam o erro e tentem melhorar, mas ao invés disso, tentem arrumar um jeito de contornar a situação para aliviar a "bronca".&lt;/p&gt;

</description>
      <category>test</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Semana 1</title>
      <dc:creator>Felipe Ramos Kafuri</dc:creator>
      <pubDate>Sun, 22 Nov 2020 21:29:28 +0000</pubDate>
      <link>https://dev.to/felipekafuri/semana-1-4ig5</link>
      <guid>https://dev.to/felipekafuri/semana-1-4ig5</guid>
      <description>&lt;p&gt;Pra quem chegou aqui de paraquedas, me chamo Felipe Ramos Kafuri e estou com um desafio  de documentar meus aprendizados  da semana em um breve resumo postado aqui no &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt;. Tendo isso em vista tentarei fazer um post desse até o final do ano com a finalidade de criar um hábito, pois, percebi que essa documentação do conhecimento é uma das melhores formas de fixar os aprendizados. Separarei o post em dois tópicos &lt;strong&gt;hard skills&lt;/strong&gt; e &lt;strong&gt;soft skills&lt;/strong&gt;, assim fica mais facil de organizar os aprendizados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hard Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Autenticação
&lt;/h3&gt;

&lt;p&gt;De um tempo pra ca, no meu tempo livre venho estudando e brincando um pouco com Next.js, e um dos "problemas" que me deparei era o fato de que eu não sabia usar outro tipo de autenticação alem do famoso combo JWT e Local Storage, porem como muitos devem saber uma das vantagens do Next.JS é o SSR porem ele se torna inútil se as informações de usuários se encontram "armazenadas" no client-side, então, visando achar uma solução para esse problema eu fui atrás de outras alternativas de autenticação e foi ai que descobri que poderia usar cookies para isso. Como uso JS o combo que usei para resolver essas estratégias foi uma lib chamada express-session, com banco de dados redis. &lt;/p&gt;

&lt;h3&gt;
  
  
  AWS
&lt;/h3&gt;

&lt;p&gt;Pra quem já viu os posts que faço no meu &lt;a href="https://www.linkedin.com/in/felipekafuri/"&gt;LinkedIn&lt;/a&gt; sabe que eu meu irmão estamos começando uma empresa chamada Helpy, e de um tempo pra ca decidimos que iriamos abrir uma outra empresa em outro nicho e pra isso tive que criar uma conta pra ela na AWS que é a empresa que escolhi para utilizar os serviços na nuvem, dentre eles, amazon SES, amazon S3, entre outros. Porem para facilitar a gerencia de duas contas diferentes e que usam serviços diferentes eu fui atras de alguma forma de unificar as contas, foi ai então que descobri que tem como criar uma organização na AWS, que nada mais é que uma de suas contas é a conta "manager" e a partir dai você convida outras contas para serem gerenciadas por ela, esse tipo de organização que você cria trás algumas funções porem a que mais me atraiu foi o fato de que o pagamento fica unificado tornando mais fácil a organização e o controle de gastos entre as contas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Relacionamento em banco de dados
&lt;/h3&gt;

&lt;p&gt;Essa semana um dos problemas que enfrentei foi o fato de ter que lidar com alguns relacionamentos complexos de banco de dados o que fez com que eu gastasse uma tarde toda estudando muito sobre relacionamentos, o que me trouxe um bom conhecimento sobre, nisso descobri um site que vem me ajudando muito a enxergar meus relacionamentos antes de passa-los pro código, o nome dele é dbdiagram &lt;a href="https://dbdiagram.io/d"&gt;https://dbdiagram.io/d&lt;/a&gt; que é basicamente um site onde você monta as tabelas e com elas, os relacionamentos, o que te ajuda muito a esboçar suas ideias.&lt;/p&gt;

&lt;h2&gt;
  
  
  Soft Skills
&lt;/h2&gt;

&lt;p&gt;Nesse post serei 100% sincero. Tendo isso em vista, não tive grandes aprendizados de soft skills essa semana, o que é normal, porem, a um tempo atrás comecei a ler um livro chamado "Como fazer amigos e influenciar pessoas" que tive que dar um tempo na leitura por ter outras coisas em que focar, mas essa semana retornei a leitura desse livro e devo dizer que vale muito a pena, ainda não terminei mas sei que vai me trazer muitos aprendizados que com certeza irei trazer aqui nos post semanais.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agradecimentos
&lt;/h3&gt;

&lt;p&gt;Bom chegamos ao fim desse post e só queria agradecer a leitura de todos, e desejar uma ótima semana a todos, que essa semana seja repleta de aprendizados. Até semana que vem!!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>database</category>
    </item>
    <item>
      <title>Primeiro deploy na Digital Ocean (Tutorial para iniciantes)</title>
      <dc:creator>Felipe Ramos Kafuri</dc:creator>
      <pubDate>Fri, 25 Sep 2020 01:09:54 +0000</pubDate>
      <link>https://dev.to/felipekafuri/primeiro-deploy-na-digital-ocean-tutorial-para-iniciantes-b6o</link>
      <guid>https://dev.to/felipekafuri/primeiro-deploy-na-digital-ocean-tutorial-para-iniciantes-b6o</guid>
      <description>&lt;h2&gt;
  
  
  Minha situação...
&lt;/h2&gt;

&lt;p&gt;Bom primeiramente, olá a todos! Me chamo Felipe Ramos Kafuri e estou me apresentando porque, sim, este é meu primeiro post escrito para o &lt;strong&gt;DEV Community.&lt;/strong&gt; Bom, sou dev a mais ou menos 8 meses e me considero um FullStack Jr na stack ( Node | React | React Native ), porem como muitos que conheço apesar de já conseguir desenvolver algumas aplicações como é o caso da ( &lt;a href="https://www.app.helpy.com.br"&gt;https://www.app.helpy.com.br&lt;/a&gt; ), - farei um post sobre essa aplicação num futuro breve - nunca havia feito um deploy de uma API em um servidor durante minha jornada... e devo-lhes adiantar foi mais fácil do que eu imaginava e por que de eu estar fazendo isso?! Para ajudar quem quer fazer um deploy rápido e prático da sua primeira aplicação. Mas agora vamos ao que interessa.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que será abordado nesse tutorial?
&lt;/h2&gt;

&lt;p&gt;Bom tendo em vista que se eu fosse configurar tudo o que é essencialmente necessário para uma aplicação rodar fluidamente e com segurança leva alguns passos a mais decidi abordar aqui apenas o deploy e algumas configurações iniciais, nesse tutorial guiarei vocês na criação do Droplet, configurando usuário com permissões root, clonando um repo e fazendo ele funcionar, mas, caso queiram que eu faça uma segunda parte configurando o resto como HTTPS e pm2 ( para que sua aplicação fique rodando da maneira correta) deixem o feedback que farei com muito prazer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando meu primeiro Droplet
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O que são droplets?
&lt;/h3&gt;

&lt;p&gt;Nada mais são que servidores VPS que contratamos para utilizar. &lt;/p&gt;

&lt;h3&gt;
  
  
  Criação do Droplet...
&lt;/h3&gt;

&lt;p&gt;Ao criar sua conta na Digital Ocean você provavelmente se irá se deparar com uma tela como essa: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kc5Crgly--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s8tnjxfep15unk8q1ns6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kc5Crgly--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s8tnjxfep15unk8q1ns6.png" alt="Alt Text" width="880" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em "Get Started with a Droplet"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verão a frente que optei por escolher o droplet com imagens do docker, pois, caso queiram uma parte dois ensinando a mexer no docker e configura-lo de maneira correta eu o farei utilizando esse mesmo droplet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Após clicar em "Get Started with a Droplet" você será redirecionado para uma página como essa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hESPWIKh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a7ix20vz2k9lqco024xx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hESPWIKh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a7ix20vz2k9lqco024xx.png" alt="Alt Text" width="880" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como eu havia comentado, para ja criarmos um droplet com o docker instalado é muitos simples, basta irmos à opção &lt;strong&gt;Marketplace,&lt;/strong&gt; ao fazermos isso teremos as seguintes opções: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q5brMRy5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7vdm9eqpex9ten6mdsb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q5brMRy5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7vdm9eqpex9ten6mdsb1.png" alt="Alt Text" width="880" height="132"&gt;&lt;/a&gt;&lt;br&gt;
Escolha &lt;strong&gt;Docker 19.03.12 on Ubuntu 20.04.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATENÇÃO: Algumas versões podem estar diferentes, isso irá depender da data em que você está lendo esse post.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prosseguindo a criação do nosso Droplet, um pouco mais abaixo na página nos depararemos com a escolha da região em que queremos o nosso droplet.&lt;/p&gt;

&lt;p&gt;Eu recomendo fortemente que escolha &lt;strong&gt;New York&lt;/strong&gt; ou &lt;strong&gt;San Fransisco,&lt;/strong&gt; a não ser que você seja da Europa. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l9yMLdPN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fk8zfyhj1gu1d9ag6yyu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l9yMLdPN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fk8zfyhj1gu1d9ag6yyu.png" alt="Alt Text" width="880" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seguindo mais embaixo termos a parte de &lt;strong&gt;Authentication,&lt;/strong&gt; no meu caso eu já tenho uma chave ssh mas caso você não tenha basta ir no botão &lt;strong&gt;New SSH Key&lt;/strong&gt; e seguir o passo a passo que eles ensinam, não demora mais que 3 minutos.&lt;/p&gt;

&lt;p&gt;Logo embaixo teremos &lt;strong&gt;Finalize and create&lt;/strong&gt; nessa parte você pode atribuir um nome ao seu Droplet para que fique mais facil identifica-lo posteriormente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gcqiGyOh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5rzz37az4tvd0np39utn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gcqiGyOh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5rzz37az4tvd0np39utn.png" alt="Alt Text" width="880" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No meu caso dei o nome de &lt;strong&gt;dev-community.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As próximas opções são apenas caso você queria criar um backup do seu Droplet, é uma boa opção mas não vamos utiliza-la por isso não marquei.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clique em "Create Droplet" e pronto!!! Seu Droplet está criado!!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  E agora? Acabou?
&lt;/h2&gt;

&lt;p&gt;Não mesmo meu pequeno gafanhoto. Agora vamos configurar algumas coisas dentro do nosso droplet, até por que la dentro devemos tomar certos tipos de cuidados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurando Servidor
&lt;/h2&gt;

&lt;p&gt;Agora que temos nosso servidor criado, vamos configura-lo.&lt;/p&gt;

&lt;p&gt;Para entrar em nosso servidor utilizaremos o terminal com o comando&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ssh &lt;a href="mailto:root@000.000.00.00"&gt;root@000.000.00.00&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATENÇÃO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No lugar desses 0s você vai colocar o ipv4 do seu servidor criado. Dessa mesma forma:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pUk4Hs_x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/opoqe67cltelndqatx8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pUk4Hs_x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/opoqe67cltelndqatx8k.png" alt="Alt Text" width="692" height="949"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao entrar pela primeira vez ele irá perguntar se você deseja adicionar esse servidor ao seus servidores conhecidos, basta digitar &lt;strong&gt;yes&lt;/strong&gt; e pronto ja estará dentro do seu servidor.&lt;/p&gt;

&lt;p&gt;Agora ja dentro de nosso servidor, particularmente eu gosto de mante-lo sempre bem atualizado então vou e recomendo rodar o comando &lt;strong&gt;apt update&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1eoCwqHM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8s7aryj4c2hynhnb9z62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1eoCwqHM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8s7aryj4c2hynhnb9z62.png" alt="Alt Text" width="880" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida rode &lt;strong&gt;apt upgrade&lt;/strong&gt;, esse comando demorará um pouco a mais para terminar porque ele realmente instala todas os pacotes atualizados, ele irá perguntar algumas coisas só responda com &lt;strong&gt;Yes&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;OBS:&lt;/strong&gt; Caso no seu terminal apareça uma tela cinza com um fundo rosa, com algumas opções procure por aquela que esteja escrita &lt;strong&gt;keep the local version currently installed.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando novo usuário
&lt;/h2&gt;

&lt;p&gt;Agora vamos criar um novo usuário, porque o usuário root tem muitas permissões e devemos tomar um cuidado enorme com isso.&lt;/p&gt;

&lt;p&gt;Para criarmos um usuário usaremos o comando &lt;strong&gt;adduser {nome quer vc quer dar para o usuário}&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Segue abaixo como fiz: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jyb9Bvz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cbgtmtv28lt9f18pb8yz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jyb9Bvz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cbgtmtv28lt9f18pb8yz.png" alt="Alt Text" width="880" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ele te pedira pra escolher uma senha, em seguida pedira nome e outras opções que voce pode pular apertando &lt;strong&gt;enter.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para dar permissões ao seu usuário usaremos o o comando &lt;strong&gt;usermod -aG sudo {nome do seu usuário}&lt;/strong&gt; isso serve para darmos permissões de administrador para nosso usuário&lt;/p&gt;

&lt;h3&gt;
  
  
  Criando pasta .ssh para logar com nosso usuário dentro de nosso servidor
&lt;/h3&gt;

&lt;p&gt;Agora que temos nosso usuário criado vamos entrar nele usando &lt;strong&gt;cd /home/deploy&lt;/strong&gt;  e criando uma pasta &lt;strong&gt;.ssh&lt;/strong&gt;  com o comando &lt;strong&gt;mkdir .ssh&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Agora vamos converter ela para as permissões do grupo deploy usuário deploy com o comando:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;chown deploy:deploy .ssh/&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agora vamos copiar as chaves que estão na root para a pasta que criamos para termos permissão de logar nesse user, fazendo isso com o comando:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cp ~/.ssh/authorized_keys /home/deploy/.ssh/&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agora vamos para dentro da pasta .ssh que acabamos de criar e rodamos&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;chown deploy:deploy authorized_keys&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E agora provavelmente você ja pode logar no seu servidor com seu usuário, no meu caso o &lt;strong&gt;deploy&lt;/strong&gt;, vamos fazer isso?&lt;/p&gt;

&lt;p&gt;Para sair do seu servidor rode um &lt;strong&gt;exit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Logue no seu servidor como ensinado acima mas ao invés de &lt;strong&gt;&lt;a href="mailto:root@"&gt;root@&lt;/a&gt;...&lt;/strong&gt; coloque &lt;strong&gt;&lt;a href="mailto:seuUser@"&gt;seuUser@&lt;/a&gt;...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Você vera que logou com seu usuário&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ir7cC_yR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nqly82fprnzqii0zrr36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ir7cC_yR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nqly82fprnzqii0zrr36.png" alt="Alt Text" width="880" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando Node
&lt;/h2&gt;

&lt;p&gt;Vá até &lt;a href="https://nodejs.org/en/"&gt;https://nodejs.org/en/&lt;/a&gt; na aba downloads na opção &lt;strong&gt;Installing nodejs via package manager&lt;/strong&gt; escolhar a opção &lt;strong&gt;Debian and Ubuntu based Linux distributions, Enterprise Linux/Fedora and Snap packages,&lt;/strong&gt; logo abaixo de &lt;strong&gt;Snap packages&lt;/strong&gt; vá em &lt;strong&gt;Node.js binary distributions,&lt;/strong&gt; vá até a versão LTS no meu caso é essa: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UHcW91nv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/65qi61nblwt11gboqxp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UHcW91nv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/65qi61nblwt11gboqxp8.png" alt="Alt Text" width="880" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copei e rode os comandos que estão destacados e depois rode &lt;strong&gt;sudo apt-get install -y nodejs&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando Yarn
&lt;/h2&gt;

&lt;p&gt;Vá até &lt;a href="https://classic.yarnpkg.com/en/docs/install#debian-stable"&gt;https://classic.yarnpkg.com/en/docs/install#debian-stable&lt;/a&gt; copie e cole os dois primeiros comandos da doc e como já temos o node instalado copie apenas o terceiro comando da doc&lt;/p&gt;

&lt;h2&gt;
  
  
  Clonando a aplicação
&lt;/h2&gt;

&lt;p&gt;Finalmente estamos chegando ao fim, agora falta pouco para você ter sua primeira aplicação rodando em um servidor, então chega de enrolação e vamos lá.&lt;/p&gt;

&lt;p&gt;O git já vem instalado por padrão nessas maquinas então não precisamos nos preocupar com isso, basta irmos ao repositório o qual queremos clonar e fazer o que sempre fazemos.&lt;/p&gt;

&lt;p&gt;No meu caso clonei um repositório bem simples só para vocês terem uma ideia, segue link do repositório caso queiram testar:  &lt;a href="https://github.com/felipekafuri/digitalocena-tutorial"&gt;https://github.com/felipekafuri/digitalocena-tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eu pessoalmente gosto de criar uma pasta &lt;strong&gt;app&lt;/strong&gt; e clonar o repositório dentro dela para manter as coisas organizadas mas isso é gosto pessoal, sigo esse processo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fW5DtDzd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xmkw3n6qsg51srwor65h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fW5DtDzd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xmkw3n6qsg51srwor65h.png" alt="Alt Text" width="880" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Entre dentro do repo, rode &lt;strong&gt;yarn&lt;/strong&gt;  para instalar as dependências e depois rode o script que deixei criado &lt;strong&gt;yarn dev&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rXRTcJDt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eupfc8lsjmfksn10lgot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rXRTcJDt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eupfc8lsjmfksn10lgot.png" alt="Alt Text" width="880" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  BOOOOM!! SUA APLICAÇÃO ESTÁ NO AR!!
&lt;/h2&gt;

&lt;p&gt;Não está acreditando??&lt;/p&gt;

&lt;p&gt;Abra uma nova aba copie o ipv4 do seu Droplet e cole ele no navegador com a porta :3333 no final tipo esse &lt;strong&gt;198.199.00.00:3333&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se tiver clonado o mesmo repositório que eu o resultado deve ser este: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PDJtqoK2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7o94kc6h08so3oz5p8oi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PDJtqoK2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7o94kc6h08so3oz5p8oi.png" alt="Alt Text" width="880" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  FIM!
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Agradecimentos
&lt;/h1&gt;

&lt;p&gt;Bom espero que com esse conteúdo você tenha aprendido algo, espero poder ter te ajudado de alguma forma! Se deixei faltar algo ou se algo não ficou claro por favor me fale aqui nos comentários do post que ficarei satisfeito em responde-lo se souber a resposta. Não esqueça de avaliar o post de ele te ajudou de alguma maneira 😄. Se quiserem uma outra parte me avisem que farei como dito acima. Grande abraço!!!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>digitalocean</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
