Skip to content

Instantly share code, notes, and snippets.

@rafaelclaycon
Last active December 8, 2022 00:18
Show Gist options
  • Save rafaelclaycon/f70b264ec8fff7f75ba7e2f3869a3db4 to your computer and use it in GitHub Desktop.
Save rafaelclaycon/f70b264ec8fff7f75ba7e2f3869a3db4 to your computer and use it in GitHub Desktop.
Criando uma VM no Linode e rodando uma API Vapor

Criando uma VM no Linode e rodando uma API Vapor

Requisitos:

  • Mac
  • Xcode
  • Homebrew
  • Cartão de crédito internacional

1. Criar projeto Vapor

No Mac, instale o Homebrew (https://brew.sh).

Abra o Terminal e execute o seguinte comando:

brew install vapor

Navegue para a pasta na qual você costuma guardar seus projetos (aqui cd user/Projetos) e rode o comando:

vapor new minha-api

Responda as perguntas do assistente. Fluent = y, db = SQLite, Leaf = n

Project minha-api has been created!

Captura de Tela 2022-12-07 às 10 29 51

Hora de abrir o projeto.

cd minha-api
open Package.swift

Parabéns, você criou o seu primeiro projeto de API com Vapor!

Procure por routes.swift no projeto para ver as rotas da API e rode-o (Play do Xcode) para vê-lo no navegador local (http://127.0.0.1:8080).

2. Criar conta no Linode

3. Criar VM no Linode

4. Acessar VM

Captura de Tela 2022-12-07 às 16 36 54

No painel do seu Linode, copie o Acesso SSH e cole no Terminal. Dê Return.

Exemplo:

ssh root@139.144.29.51

Ele vai perguntar se deseja confiar na finregprint. Confie e então digite a senha do root configurada anteriormente.

Assim que estiver logado, digite o seguinte comando para puxar as últimas atualizações de pacotes:

sudo apt update

Tela rosa: Tab para ir para o Ok

5. Instalar o Swift na VM

Por favor, siga os passos desse outro Gist para instalar o Swift na VM. Ele é essencial para continuar.

https://gist.github.com/rafaelclaycon/276e3b70e3f265851a5ec695e0933e50

6. Clonar projeto

Garanta que você está dentro do diretório do seu usuário na VM remota e rode:

git clone https://github.com/meu-usuario-do-github/minha-api

6. Buildar projeto

Primeiro é necessário instalar algumas dependências do Vapor:

sudo apt-get install openssl libssl-dev zlib1g-dev libsqlite3-dev

Garanta que você está dentro da pasta do projeto e, finalmente:

swift build

O resultado esperado é:

Build complete!

7. Rodar e testar servidor

Antes de tudo, rode:

sudo ufw allow http

E então, estando dentro do diretório do projeto:

screen .build/debug/Run serve --hostname 0.0.0.0 --env production

Se tudo der certo, seu servidor está rodando!

screen é um utilitário do Linux que nos permite rodar o processo e "desgrudar" dele sem encerrar.

Depois de iniciar o servidor, pressione Ctrl-A e então Ctrl-D pra desgrudar do processo do servidor.

No navegador local, digite http://<<ip-da-vm>>:8080 para testar o servidor (substitua <<ip-da-vm>> pelo IP da sua VM do Linode).

Caso tenha sucesso, o texto It works! irá parecer no navegador.

Próximos passos

Processo necessário ao adicionar novos objetos (models) à API

Para rodar as migrations no Linux, é necessário ter a toolbox do Vapor instalada.

Volte para a pasta de projetos e:

git clone https://github.com/vapor/toolbox.git
cd toolbox

Agora vamos precisar instalar o make:

apt install make

Na pasta da toolbox, rode:

make install

E por fim, sempre que criar novos objetos na API (e, por consequência, migrations), rode (de dentro do diretório do projeto):

vapor run migrate

...

Daqui pra frente, basta criar novos endpoints na tua API, subir as alterações para o GitHub e dar pull nelas na VM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment