Nestjs
Criando e Implantando um Projeto Nest.js com Docker na Digital Ocean
Tópico 1: Configuração Inicial
1.1 Criação de um Projeto Nest.js
Comece criando um projeto Nest.js usando o CLI:
npm install -g @nestjs/cli
nest new meu-projeto-nestjs
1.2 Dockerização do Projeto
Crie um arquivo Dockerfile
na raiz do seu projeto Nest.js para definir a configuração do contêiner Docker:
# Use a imagem oficial do Node.js como base
FROM node:14
# Diretório de trabalho dentro do contêiner
WORKDIR /app
# Copie o arquivo package.json e o arquivo package-lock.json
COPY package*.json ./
# Instale as dependências
RUN npm install
# Copie o restante dos arquivos do projeto
COPY . .
# Porta que a aplicação irá ouvir
EXPOSE 3000
# Comando para iniciar a aplicação
CMD ["npm", "start"]
Tópico 2: Dockerização e Teste Local
2.1 Construção da Imagem Docker
Construa a imagem Docker do seu projeto executando o seguinte comando no diretório do projeto:
docker build -t meu-projeto-nestjs .
2.2 Execução Local do Contêiner
Execute o contêiner Docker localmente:
docker run -p 3000:3000 meu-projeto-nestjs
Acesse http://localhost:3000
para testar a aplicação Nest.js em execução no contêiner.
Tópico 3: Configuração na Digital Ocean
3.1 Criação de uma Conta Digital Ocean
Se você ainda não tiver uma conta Digital Ocean, crie uma em https://www.digitalocean.com/ .
3.2 Criação de um Droplet
- No painel Digital Ocean, crie um Droplet (servidor virtual) com a distribuição Linux de sua escolha.
- Copie o endereço IP do Droplet para uso posterior.
Tópico 4: Implantação na Digital Ocean
4.1 Conexão SSH
Conecte-se ao seu Droplet via SSH usando o endereço IP:
ssh root@seu-endereco-ip
4.2 Instalação do Docker no Droplet
No Droplet, instale o Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
4.3 Implantação da Imagem Docker
Transfira a imagem Docker do seu projeto para o Droplet:
docker save -o meu-projeto-nestjs.tar meu-projeto-nestjs
No Droplet, carregue a imagem:
docker load -i meu-projeto-nestjs.tar
4.4 Execução da Aplicação no Droplet
Execute a aplicação no Droplet:
docker run -d -p 80:3000 meu-projeto-nestjs
A aplicação Nest.js agora deve estar acessível em http://seu-endereco-ip
.
Tópico 5: Configuração do Proxy Reverso
5.1 Configuração do Nginx
Instale o Nginx no seu Droplet e configure-o como um proxy reverso para encaminhar as solicitações para a aplicação Nest.js:
apt update
apt install nginx
5.2 Criação de um Bloco de Servidor
Crie um arquivo de bloco de servidor Nginx para sua aplicação:
nano /etc/nginx/sites-available/meu-projeto-nestjs
Cole o seguinte conteúdo e ajuste os valores conforme necessário:
server {
listen 80;
server_name seu-dominio.com;
location / {
proxy_pass http://seu-endereco-ip:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
5.3 Ativação do Bloco de Servidor
Ative o bloco de servidor:
ln -s /etc/nginx/sites-available/meu-projeto-nestjs /etc/nginx/sites-enabled
5.4 Reinício do Nginx
Reinicie o Nginx:
systemctl restart nginx
Sua aplicação Nest.js agora deve ser acessível em seu domínio.
Lembre-se de ajustar as configurações de segurança, firewall e monitoramento do seu servidor Digital Ocean conforme necessário.