Pular para o conteúdo

Implementando Rebase na Hetzner Cloud

A Hetzner Cloud é amplamente reconhecida por oferecer incríveis relações desempenho-preço e é uma das principais escolhas para projetos que exigem estrita soberania de dados europeia e conformidade com o GDPR (com datacenters em Nuremberg, Falkenstein e Helsinque).

Implementar o Rebase na Hetzner é mais fácil via Docker Compose em uma instância de nuvem Ubuntu padrão.

  1. Faça login no seu Console Hetzner Cloud.
  2. Clique em Adicionar Servidor.
  3. Escolha sua Localização preferida (ex: Falkenstein ou Nuremberg).
  4. Escolha uma Imagem: Selecione Ubuntu 24.04 ou Aplicativo -> Docker CE (isso pré-instala o Docker para você).
  5. Escolha um Tipo: Um CPX21 (3 núcleos, 4GB RAM) ou CX32 (4 núcleos, 8GB RAM) oferece excelente capacidade computacional de base para executar o Rebase + Postgres.
  6. Adicione sua chave SSH e clique em Criar.

Assim que seu servidor for provisionado, obtenha o endereço IP público.

ssh root@<your-server-ip>

Se você não escolheu a imagem Docker, instale o Docker e o Docker Compose explicitamente:

apt update && apt install docker.io docker-compose-v2 -y

Clone seu projeto Rebase diretamente na instância do servidor.

git clone https://github.com/your-username/your-rebase-repo.git /opt/rebase
cd /opt/rebase

O Rebase fornece um docker-compose.yml pronto para uso. Você precisará definir suas variáveis de ambiente de produção. Crie um arquivo .env.production:

nano .env.production

Adicione seus segredos:

DATABASE_URL=postgresql://rebase:your_secure_db_password@postgres:5432/rebase
JWT_SECRET=generate_a_very_long_secure_random_string_here
NODE_ENV=production

Certifique-se de atualizar docker-compose.yml se quiser puxar a senha do Postgres de uma variável de ambiente.

Coloque a pilha online usando o modo desanexado:

docker compose --env-file .env.production up -d --build

O Docker construirá seu backend Node.js a partir do Dockerfile local e iniciará o contêiner Postgres. Uma vez concluído, seu aplicativo estará em execução em http://localhost:3001 (interno ao servidor).

Você nunca deve expor a porta 3001 diretamente à internet sem SSL. Recomendamos colocar o Caddy na frente da sua instância Rebase para provisionar automaticamente certificados Let’s Encrypt.

Instale o Caddy:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy

Edite seu Caddyfile:

nano /etc/caddy/Caddyfile

Adicione o seguinte (substitua pelo seu domínio, que deve ter seu registro A apontando para este IP da Hetzner):

admin.yourdomain.com {
reverse_proxy localhost:3001
}

Reinicie o Caddy:

systemctl restart caddy

É isso! Sua plataforma Rebase está hospedada de forma segura inteiramente dentro da UE.