Olá, bem-vindo à série de posts sobre como criar uma API REST com NestJS! Neste primeiro post vamos configurar nosso ambiente para o desenvolvimento da nossa aplicação.

Para o setup do nosso ambiente vamos precisar de:

  • Docker;
  • Um gerenciador de banco de dados (aqui eu irei utilizar o DBeaver);
  • Um editor de código de sua preferência (aqui eu irei utilizar o MS Visual Code)
  • Banco de dados

Nota: A configuração do ambiente nesse post está sendo feita no deepin 20 Community

1 - Instalando o Docker

Antes de começar a instalação do Docker, é necessário atualizar a lista de pacotes do sistema:

sudo apt update

É necessário instalar alguns pacotes de pré-requisitos que permitem que o apt utilize pacotes via HTTPS:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Adicione a chave GPG e repositório do Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

Atualize os pacotes e instale o Docker:

sudo apt update
sudo apt install docker-ce

Por último, baixe o docker-compose, faça a instalação, e mude as permissões do arquivo para rodá-lo no Linux:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Dica: caso precise de alguma ajuda extra, este link pode ajudar!

2 - Configurando o Banco de dados com o Docker

Nesse conjunto de posts iremos usar um banco de dados postgres. Para isso precisaremos configurar o ambiente dele no Docker que instalamos no passo anterior.

Vamos começar criando um arquivo docker-compose. Navegue até o diretório de sua preferência e crie um arquivo docker-compose.yml, é nesse arquivo que vamos escrever as configurações do postgres que iremos utilizar.

No arquivo, coloque a seguinte configuração:

version: '3.4'
services:
    postgresql:
        image: postgres:10.7  #ou ‘postgres: latest’, se preferir.
        environment:
            POSTGRES_USER: root
            POSTGRES_PASSWORD: root
        volumes:
            - ./dbdata:/var/lib/postgresql/data
        ports:
            - 5432:5432
        restart: always

em seguida, abra o diretório no terminal e execute o arquivo:

sudo docker-compose up -d

Feito! Nosso container está configurado e pronto para ser utilizado!

3 - Instalando e configurando o DBeaver

Vamos usar o DBeaver para administrar o nosso banco de dados de forma mais simples.

Opção 1 - Baixando o Instalador do DBeaver:

Para baixar o DBeaver, acesse o site de download e escolha a versão Community correta para o seu sistema operacional

Opção 2 - Instalando o DBeaver com snap no Linux:

Por padrão, o snap já vem instalado a partir da versão 16.x do Ubuntu, e para instalar o DBeaver, basta abrir o terminal e usar o comando:

sudo snap install dbeaver-ce

Configurando o DBeaver:

Nosso próximo passo agora é configurar a conexão com nosso banco de dados postgres no DBeaver

Com o DBeaver aberto, clique em new database connection

Selecione PostgreSQL

Em Authentication, vamos inserir o username e password que usamos na criação do container.

É possível também definir o nome, tipo, descrição e afins clicando no botão Connection Details destacado na imagem

Antes de finalizar a criação, é necessário habilitar a visualização de todos os bancos de dados que serão criados na conexão:

Após clicar em Finish, a conexão será exibida no menu:

4 - Instalando e configurando o MS Visual Code:

Opção 1 - Baixando o Instalador do MS Visual Code:

Para baixar o Visual Code, acesse o site de download e escolha a versão correta para o seu sistema operacional

Opção 2 - Instalando o MS Visual Code com snap no Linux:

sudo snap install code --classic

Configurando o Visual Code:

Após instalar o Visual Code, é interessante o uso de algumas extensões que irão nos ajudar durante o desenvolvimento da nossa API, para isso, navegue até extensions no menu lateral

Extensões que eu recomendo:

Chegamos ao fim dessa primeira parte!

Com o ambiente configurado poderemos dar início à construção da nossa api com NestJs.

Te aguardo no próximo post!