Este conteúdo está sendo dividido em partes para facilitar a leitura, ninguém gosta de posts muito grandes.
Estou subindo um projeto pessoal, gymora.com.br.
Depois de fazer muitas pesquisas sobre como subir o backend e o banco de dados utilizando alguma plataforma tipo Railway, Render, Koyeb, etc. Optei pelo mais simples, uma VPS na Locaweb.
Com ela eu vou ter um trabalho maior para configurar várias coisas, mas o mais importante pra mim no momento é que sempre vou pagar o mesmo preço mensalmente e terei as configurações do servidor que contratei.
E claro, poderei aprender mais sobre Infra, DevOps, deploy com pouco dinheiro, algumas ferramentas como Docker Swarm, Traefik, etc.
Abaixo vou listar cada coisa que fiz para ter o servidor funcionando, como eu acesso ele, monitoro, etc.
Setup do servidor na Locaweb
Criar um servidor na Locaweb é bem simples, após escolher quais as configurações do servidor e efetuar o pagamento. Eles vão enviar um email para o Setup Inicial.
Nós escolhemos um nome, após isso podemos escolher entre um Sistema Operacional zerado ou uma aplicação onde já vêm algumas coisas instaladas. No meu caso, foi um SO zerado. Escolhi o Ubuntu, pois já tenho mais familiaridade.
Depois ele pede pra você configurar uma senha para acessar o servidor ou uma chave ssh
. Você escolhe o que for melhor pra você.
Após a instalação do servidor, você consegue acessar o painel administrativo e ver algumas informações do servidor como IPv4, Domínio da Locaweb, entre outras coisas.
Configuração de Zona DNS
Como meu domínio foi comprado pelo registro.br, ele também é gerenciado lá. É preciso configurar para que meu domínio e subdomínios estejam apontando para o IP do meu servidor.
Adicionei uma entrada do Tipo A com o nome que gostaria, por exemplo, server
e o endereço IPv4 do meu servidor.
Com isso, quando alguém acessar server.gymora.com.br
vai apontar para meu servidor.
Para testar se já está funcionando é só rodar um
ping server.gymora.com.br
E o ping
deve responder com o IP do servidor.
Acessando o servidor via SSH
Na primeira vez acessando o servidor, só temos acesso com o usuário root
. E como eu configurei acesso via chave ssh
, eu acesso da seguinte forma:
ssh -i ~/.ssh/minha_chave root@server.gymora.com.br
Ao acessar o servidor pela primeira vez, gosto e recomendo as seguintes etapas
Primeiro acesso ao servidor via SSH
- Adicionar um novo usuário e conceder privilégios de
root
adduser lucas
usermod -aG sudo lucas
usermod -aG root lucas
- Remover acesso via senha e acesso
root
# Abrir o arquivo de configuração SSH
sudo nano /etc/ssh/sshd_config
# Modificar as seguintes linhas
# PermitRootLogin no # Disabilita o login com root usuário
# PasswordAuthentication no # Disabilita o login com senha
# Reinicia o serviço SSH
sudo systemctl restart ssh
- Configurar um Firewall (UFW)
# Instalar o UFW
sudo apt install ufw
# Permitir somente as portas necessárias
sudo ufw allow OpenSSH # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
# Habilita o UFW
sudo ufw enable
# Verifica UFW
sudo ufw status
Com isso, finalizamos a primeira parte da configuração do servidor.
Dica para facilitar
Agora, gosto de criar uma configuração para facilitar meu dia a dia, pois lido com mais de uma chave ssh.
Podemos criar dentro de .ssh/
um arquivo chamado config
.
Abro com o VS Code para simplificar
code ~/.ssh/config
E coloco a seguinte configuração
Host gymora-server
HostName server.gymora.com.br
User lucas
IdentityFile ~/.ssh/minha_chave
Onde:
Host
é o nome que irei utilizar para acessar futuramente.HostName
é o endereço que configurei no Registro.brUser
é o novo usuário que crieiIdentityFile
é o caminho da chave ssh que estou usando.
Assim consigo acessar da seguinte forma.
ssh gymora-server
Acesso SSH configurado, hora de configurar o servidor
A primeira coisa que gosto de fazer é atualizar o SO.
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
Assim atualiza tudo que já está instalado nele.
Agora vou instalar as ferramentas que gosto de usar no dia a dia dentro do servidor.
As primeiras ferramentas são
sudo apt install -y \
curl \
git \
ufw \
build-essential \
htop \
software-properties-common \
ca-certificates \
unzip
Isso eu considero essencial para ter em qualquer computador Ubuntu.
Como estou acostumado no meu terminal do meu computador, gosto também de instalar o zsh
com o oh-my-zsh
e alguns plugins.
Assim mantenho o ambiente do meu terminal local com meu servidor o mais parecido possível.
sudo apt install zsh
E deixo a seguinte configuração no meu .zshrc
ZSH_THEME="spaceship"
SPACESHIP_USER_SHOW=always
SPACESHIP_USER_PREFIX="🔥 PROD 🔥 "
SPACESHIP_USER_SUFFIX=" "
SPACESHIP_TIME_SHOW=true
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#663399,standout"
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE="20"
ZSH_AUTOSUGGEST_USE_ASYNC=1
Instalando Docker
Segui o tutorial de instalação do Docker vindo da própria Locaweb
Final da primeira parte
Esse post já ficou um pouco longo e cobre bastante coisa sobre a VPS em si.
Nos próximos já vou trazer informações sobre como estou configurando a aplicação para rodar na VPS com o Traefik, como estou fazendo o CI/CD usando Gitlab, etc.